Android:布局在gridview的底部(在它的末尾)

发布于 2024-12-07 08:15:47 字数 1425 浏览 2 评论 0原文

我想要的是让 gridview 填满整个屏幕。当你向下滚动时,最后会出现一个带有 2 个按钮的布局。我一直在阅读但不知道如何获得它。我可以将其修复在屏幕顶部和底部(在网格视图上方)。当网格视图被填充时,尝试使用按钮进行布局甚至不会出现。

我一直在尝试权重、对齐等,但找不到问题所在。继承人的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>

What i want is to have the gridview filling whole screen. And when you scroll it down, at the end would appear a layout with 2 buttons. Ive been reading and couldnt figure how to get it. I could fix it on the top of the screen and the bottom (over the gridview). And also trying the layout with the button wont even appear when the gridview is filled.

Ive been playing with weights, aligns, etc. But cant find whats wrong. Heres the 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

没有心的人 2024-12-14 08:15:47

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

然而,这里使用了一个可怕的黑客可能会起作用:Android Pull to刷新

显然它使用包含标题视图和 ListView 的 LinearLayout 并移动它们。 (根据此页面。)正如那个人所说,为了一个可怕的黑客攻击需要做很多工作。

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

As far as I can tell you can't easily do this. You can do it with a plain ListView using addFooter(), but sadly GridView doesn't have this method. Also you can't implement your own GridView because it uses a lot of private APIs.

However, there is a horrible hack used here that might work:Android Pull to refresh

Apparently it uses a LinearLayout containing the header view and the ListView and moves them both. (According to this page.) As that guy says, a lot of work for a horrible horrible hack.

The only other way I can think to do it, is to give up on GridView and use a ListView where each row is a horizontal LinearLayout. Still very hacky though.

知足的幸福 2024-12-14 08:15:47

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

set LinearLayout below GridView by setting android:layout_below:"@+id/gridView" inside id/linearLayout

昇り龍 2024-12-14 08:15:47

我这样解决这个问题:

<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>

在线性布局中包含GridView,然后我就可以按照你的方式工作。

I solve this problem like this:

<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>

include GridView in linearlayout,then i's work as you like.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文