java - 将自定义形状应用于 Android ListView

标签 java android listview

您好,我正在尝试将自定义形状和 View 应用到我的 Android ListView 。当 ListView 中添加了足够多的元素,您必须滚动才能看到所有元素时,它可以正常工作。但如果少于这个值,则看起来像这样 enter image description here

    <ListView
    android:id="@+id/recipe_list_view"
    android:layout_width="333dp"
    android:layout_height="163dp"
    android:layout_marginTop="46dp"
    android:background="@drawable/shape"
    android:divider="@color/darkblue"
    android:dividerHeight="10.0sp"
    android:gravity="center"
    android:textAlignment="center"
    app:layout_constraintLeft_toLeftOf="@+id/constraintLayout2"
    app:layout_constraintRight_toRightOf="@+id/constraintLayout2"
    app:layout_constraintTop_toBottomOf="@+id/imageView3"></ListView>

这是我的绘图中的形状

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#2ECC71"
        android:endColor="#2ECC71"
        android:angle="270"/>

    <corners
        android:bottomRightRadius="7dp"
        android:bottomLeftRadius="7dp"
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp"/>
</shape>

这是实现 ListView 的代码

mListView = (ListView) findViewById(R.id.listView);
            String[] listItems = new String[listOfUserIds.size()];

            for(int i = 0; i < users.size(); i++){
                listItems[i] = users.get(i);
            }

            ArrayAdapter adapter = new ArrayAdapter(EventDetailsActivity.this, android.R.layout.simple_list_item_1, listItems);
            mListView.setAdapter(adapter);

这是当有足够的元素可以滚动时的样子

enter image description here

最佳答案

您为listView提供了背景,并且 ListView 高度为163dp,因此如果只有几个项目,它将不会填充完整的布局。这样你就可以看到背景了。解决方案是,您可以提供 wrap_content,而不是提供固定高度,或者您应该提供列表项,而不是为列表提供背景。

关于java - 将自定义形状应用于 Android ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682036/

相关文章:

java - Android - 如何从一张大位图创建小位图?

java - hadoop - map reduce 任务和静态变量

android - 按下后退按钮时如何清除 Fragment 上的 ListView?

android - 如何在 Android 中使用 retrofit 2 以 JSON 格式上传多部分图像数据?

android - 如何取消选中 setItemChecked () 选中的项目?

android - 使用共享首选项存储和检索 ListView 数据

java - 创建 POJO 以匹配 JSON 结构

java - 通过不同线程同时读取和更改变量

用于屏幕锁定的 Android API

android - 如何使用 ListView 实现长按?