Android水平列表视图,内容根据布局宽度包装

时间:2016-02-12 12:17:31

标签: android listview

我设法编写了以下代码:

以下是我在xml中的listview:

<ListView
    android:id="@+id/popular_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:layout_below="@+id/popular_layout"
    android:choiceMode="singleChoice"
    android:divider="@color/transparent"
    android:dividerHeight="10dp"
    android:visibility="visible"
    android:scrollbars="vertical">
</ListView>

以下是使这些圆形边框包裹文本内容的代码:

<?xml version="1.0" encoding="utf-8"?>
<com.magicpin.local.buddycloud.customviews.TypefacedTextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/location_item"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:gravity="left|center_vertical"
    android:paddingLeft="20dp"
    android:paddingRight="16dp"
    android:textColor="@color/select_location_text"
    android:textSize="14sp"
    app:fontType="@string/font_normal"
    android:background="@drawable/rounded_location"
    />

以下是填充它的代码:

ListView popularList = (ListView) findViewById(R.id.popular_list);
String[] popularListName = getPlacesName(locations);
ArrayAdapter<String> popularListAdapter = new ArrayAdapter<>(this, R.layout.locations_item_layout, popularListName);
popularList.setAdapter(popularListAdapter);

以下列方式向我显示ListView

enter image description here

有人可以让我知道如何让底部ListView(即POPULAR PLACES区域)以下图所示的方式显示我的内容(即,水平显示并包裹按宽度,而不是一个一个地垂直)?

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用GridView而不是ListView。

答案 1 :(得分:0)

相反,我建议您使用库TagView Git

在上面的链接中查找示例示例,以便它易于实现。

enter image description here

功能

  1. 文字的可编辑样式,例如字体大小和颜色。
  2. 标签的可编辑样式,背景/按下的颜色,半径效果, 自定义背景,删除模式。
  3. 标签选择和删除的监听器。
  4. 可以从XML文件或Java代码创建。
  5. 用法

    <cuneyt.example.com.tagview.Tag.TagView
                android:id="@+id/tag_group"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_margin="10dp" />