【问题标题】:ListView is slicing the bottom row in halfListView 将底行切成两半
【发布时间】:2015-04-29 18:20:29
【问题描述】:

由于某种原因,ListView 不会完全显示内容。每次底部,都被中途切断。在同一个应用程序中还有其他 ListViews 也会发生这种情况。

这就是这个应用程序中正在发生的事情。应用程序上让我们看到列表视图的窗口对于列表视图本身来说是两个小窗口。

这是它在应用中的样子:

这是此布局的 XML:

<?xml version="1.0" encoding="utf-8"?>
    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F5F5F5"
        android:columnCount="7"
        android:rowCount="3">

    <ImageView
        android:id="@+id/imgcolorsquarehat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center_horizontal|center_vertical"
        android:src="@drawable/bluesquare" />

    <TextView
        android:id="@+id/Numberhat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_row="0"
        android:text="49"
        android:textColor="#FFFFFF"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/TitleText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnSpan="4"
        android:layout_gravity="center_horizontal"
        android:layout_row="0"
        android:padding="10dp"
        android:text="Computer Science BSc"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000"
        android:textSize="25sp" />


    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imgcolorsquarehat"
        android:layout_column="0"
        android:layout_columnSpan="6"
        android:layout_gravity="center_horizontal"
        android:layout_row="1"
        android:paddingTop="10dp"
        android:progressDrawable="@drawable/red_progress"
        android:thumb="@drawable/red_thumb" />


    <ListView
        android:id="@+id/list_year"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnSpan="6"
        android:layout_gravity="top"
        android:layout_margin="10dp"
        android:layout_row="2"
        android:background="#FFFFFF"
        android:dividerHeight="5dp" />


    <CheckBox
        android:id="@+id/padlock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="5"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_row="0"
        android:background="@drawable/padlock_button"
        android:button="@android:color/transparent" />
</GridLayout>

编辑:见下图 ListView 认为它的边界应该在哪里。

【问题讨论】:

    标签: android xml android-listview


    【解决方案1】:

    您不应该在 GridView 中使用 ListView,它们都是 AbsListView 的子类。 例如,您可以使用 LinearLayout。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F5F5F5"
        android:columnCount="7"
        android:padding="10dp"
        android:orientation="vertical"
        android:rowCount="3">
    ...
    

    【讨论】:

    • 刚刚删除了填充吗?
    • 如果您有任何其他想法,我已经更新了帖子以提供更多信息!更正了其中一张图片。
    • 我刚刚看到我误解了你的问题。当然删除填充并不能解决它。相反,您应该只使用 LinearLayout 而不是 Gridview
    • 我吃完咖喱试试看!
    • 如果您将其作为答案发布,那么我可以稍后决定是否将其标记为正确?
    【解决方案2】:

    我相信你在ListView 上的android:layout_margin="10dp" 是罪魁祸首。尝试删除它,看看会发生什么。

    【讨论】:

    • 不幸的是没有运气......事实上,甚至 更多 行都被切掉了!
    • @MiKenning 如果从 GridLayout 中删除 android:padding="10dp" 会发生什么?
    • 我得到了更多的行,但我有同样的问题!
    • @MiKenning 如果同时删除两者,结果是否相同?
    • 同样的结果,恐怕
    【解决方案3】:

    尝试使用和更改 android:layout_margin 和 android:padding 属性,尝试多个值来调整屏幕上的视图,或者更好地调整子视图的高度。

    【讨论】:

    • 我试过删除填充。鉴于我在应用程序的其他地方遇到了这个问题,其他视图的数量并不重要。
    • 我不是指子视图编号,我的意思是列表中每个孩子的高度。尝试获取您的 ListView 高度,然后计算该空间可以容纳多少孩子。
    • 我该如何计算?
    • 如果您有任何其他想法,我已经更新了帖子以提供更多信息!更正了其中一张图片。
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多