【问题标题】:Android: layout at the bottom of a gridview (at the end of it)Android:gridview底部的布局(在它的末尾)
【发布时间】:2011-09-29 11:39:42
【问题描述】:

我想要的是让 gridview 填满整个屏幕。当你向下滚动时,最后会出现一个带有 2 个按钮的布局。我一直在阅读,无法弄清楚如何获得它。我可以将它固定在屏幕顶部和底部(在网格视图上方)。并且当gridview被填充时,甚至不会出现带有按钮的布局。

我一直在玩权重、对齐等。但找不到什么问题。这是xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/fondo">
    <GridView android:layout_width="fill_parent" 
        android:id="@+id/gridView1" 
        android:layout_height="wrap_content"
        android:numColumns="2"
        android:listSelector="#00000000">
    </GridView>
    <LinearLayout android:id="@+id/linearLayout"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:layout_below="@id/gridView1">
        <ImageView android:id="@+id/botonAtras"
            android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_weight="1" 
        android:onClick="onBotonAtrasClick">
    </ImageView>
    <ImageView android:id="@+id/botonAdelante"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_weight="1" 
        android:onClick="onBotonAdelanteClick">
    </ImageView>
    </LinearLayout>
</RelativeLayout>

【问题讨论】:

标签: android layout gridview


【解决方案1】:

据我所知,你不能轻易做到这一点。您可以使用addFooter() 使用普通的ListView 来完成此操作,但遗憾的是GridView 没有此方法。你也不能实现你自己的GridView,因为它使用了很多私有API。

但是,这里使用了一个可怕的 hack 可能会起作用:Android Pull to refresh

显然它使用包含标题视图的LinearLayoutListView 并移动它们。 (根据this page。)正如那家伙所说,为了一个可怕的骇客,需要做很多工作。

我能想到的唯一其他方法是放弃GridView 并使用ListView,其中每一行都是水平的LinearLayout。不过还是很hacky。

【讨论】:

    【解决方案2】:

    通过在 id/linearLayout 中设置 android:layout_below:"@+id/gridView" 在 GridView 下设置 LinearLayout

    【讨论】:

    • 我一直在玩这个,但找不到怎么做。我唯一能做的就是让它出现在屏幕底部。但不在网格视图下方。
    • 试过了,但一旦 GridView 有足够的元素填满屏幕,GridView 就会“吞下”底部布局。
    【解决方案3】:

    我这样解决这个问题:

    <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical" 
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
     <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:fillViewport="true" >
            <GridView
                android:id="@+id/myGrid"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:columnWidth="60dp"
                android:gravity="center"
                android:horizontalSpacing="10dp"
                android:numColumns="3"
                android:padding="10dp"
                android:stretchMode="columnWidth"
                android:verticalSpacing="10dp" />
        </LinearLayout>
    
        <Button
            android:id="@+id/bacth_button"
            android:layout_width="fill_parent"
            android:layout_height="50dip"
            android:layout_alignParentBottom="true"
            android:layout_marginLeft="2dip"
            android:layout_marginRight="2dip"
            android:layout_marginTop="2dip"
            android:text="Uninstall Selected Apps"
            android:textColor="#000000"
            android:textSize="16dip"
            android:textStyle="bold" />
    </LinearLayout>
    

    在linearlayout中包含GridView,然后我就可以随心所欲了。

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 2013-10-10
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多