繁体   English   中英

带有CardView的Android ListView:滚动时未完全显示最后一张卡片

[英]Android ListView with CardView: Last Card not fully displayed when scrolling

在此处输入图片说明

我创建了一个ListView,并向其中添加了CardView。

正如您在图像中看到的那样,当我开始滚动时,ListView中的最后一张Card并未完全显示。 它向上滚动,但没有位于底部Android导航栏的上方。 我一直在测试HTC One M8。

这是ListView:

<?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="fill_parent"
    android:orientation="vertical">
    <ListView
        android:id="@+id/wanna_list"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:divider="@null"/>
</LinearLayout>

这是我充气并设置到列表视图适配器的CardView:

<?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="wrap_content" >

    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:id="@+id/cv"
        android:foreground="?android:attr/selectableItemBackground"
        android:clickable="true"
        card_view:cardCornerRadius="6dp"
        card_view:cardUseCompatPadding="true"
        card_view:cardElevation="2dp">
    <!-- compat padding is required if using AppCompat -->

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="16dp" >

            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:id="@+id/thumbnail"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginRight="16dp"
                android:src="@drawable/india"
                android:scaleType="centerCrop" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/firstLine"
                android:layout_toRightOf="@+id/thumbnail"
                android:layout_alignParentTop="false"
                android:textSize="20sp"
                android:text="Tennis with Peter"
                android:layout_alignTop="@+id/thumbnail" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/secondLine"
                android:layout_below="@+id/firstLine"
                android:text="10 Oct at 7pm"
                android:layout_alignLeft="@+id/firstLine" />

            <Button
                android:layout_width="180dp"
                android:layout_height="wrap_content"
                android:text="YES"
                android:id="@+id/button3"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignLeft="@+id/thumbnail" />

            <Button
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:text="NO"
                android:id="@+id/button4"
                android:layout_toRightOf="@+id/button3"
                android:layout_alignBottom="@+id/button3"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="false" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>

我还尝试了名片视图布局,而没有将其包装在LinearLayout中,但仍然无法正常工作。

布局xml中是否有可以解决此问题的设置?

提前致谢。

 android:layout_marginBotton=" "

添加保证金底部应尝试一次。

因此,在listView的底部添加一个边距是可行的,如下所示:

<ListView
        android:id="@+id/wanna_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="@null"
        android:layout_marginBottom="80dp" />

令人惊讶的是,这是使它正常工作的唯一方法。 我本来以为Android框架会处理这些事情。

ListView片段中吗? 据我所知,当您使用诸如以下的Toolbar时,这是可能的:

<android.support.v7.widget.Toolbar
        ...
        app:layout_scrollFlags="scroll"
        ...
          >
</android.support.v7.widget.Toolbar>

然后将属性更改为:

    app:layout_scrollFlags="enterAlwaysCollapsed"

在ListView的底部添加页边距是一种技巧。 我为此给出了可能的原因。 如果是这种情况,则无需在ListView中添加边距。 UI行为背后总有一个原因。 我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM