GridView切断了最后一行

时间:2016-05-19 09:48:57

标签: android android-layout

我有一个GridView我通过代码填充,问题是最后一行它不完全可见。我不知道为什么会发生这种情况,Activity的布局非常简单:

<?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:orientation="vertical">

    <GridView
        android:id="@+id/sectionGrid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:horizontalSpacing="0dp"
        android:numColumns="1"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp">

    </GridView>
</LinearLayout>

行的布局如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:pew="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/white" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:layout_gravity="center"
            android:scaleType="centerCrop"
            android:id="@+id/sectionImage"/>


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignTop="@+id/sectionImage"
            android:layout_alignLeft="@+id/sectionImage"
            android:layout_alignStart="@+id/sectionImage"
            android:background="@drawable/bg_section_row"
            android:layout_alignBottom="@+id/sectionTitle"
            android:layout_alignRight="@+id/sectionImage"
            android:layout_alignEnd="@+id/sectionImage"
            android:id="@+id/sectionBgView"></RelativeLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:textColor="@color/white"
            android:scrollHorizontally="true"
            android:ellipsize="end"
            android:maxLines="1"
            android:padding="10dp"
            android:layout_alignBottom="@+id/sectionImage"
            android:layout_alignLeft="@+id/sectionImage"
            android:layout_alignStart="@+id/sectionImage"
            android:layout_alignRight="@+id/sectionImage"
            android:layout_alignEnd="@+id/sectionImage"
            android:id="@+id/sectionTitle"/>


    </RelativeLayout>
</LinearLayout>

我不确定它是否有关,但目前我正在使用以下主题:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

布局有什么问题?我错过了GridView的任何财产吗?

2 个答案:

答案 0 :(得分:1)

在GridView中 android:verticalSpacing android:horizo​​ntalSpacing 仅在另一个单元格之间有间距时才有效。

即使对于第一个单元格,间距也不会应用于顶部,但只要绘制第二个单元格,verticalSpacing属性就会起作用,并且可以在单元格之间观察到间隙。

在这种情况下,底部单元格没有任何其他单元格显示在其下方,因此最后一个单元格看起来像是从底部切割。

尝试在行单元格中为LinearLayout提供填充 例如: android:paddingBottom =&#34; 5dp&#34;

答案 1 :(得分:0)

浪费了几个小时后,我在图书馆发现了这个问题,以便创建一个滑动菜单: getaddrinfo()

我已将以下代码添加到我的BaseActivity中(每个活动都从此继承):

if(Build.VERSION.SDK_INT >= 21)
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);

它成功了。问题似乎只发生在API&gt;设备上。 21