如何使ImageButton始终位于屏幕的底部

时间:2013-12-16 10:08:23

标签: java android xml android-layout

我为这种情况创建了一个xml设计。

但是当ListView完成读取数据并向屏幕显示数据时出现了问题,但随后ImageButton被listView覆盖/消失。

我的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_frame"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#E6E6E6"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tanggal"
        android:layout_width="fill_parent"
        android:layout_height="20dp"
        android:background="#FF2300"
        android:fontFamily="sans-serif-light"
        android:paddingLeft="10dp"
        android:textSize="@dimen/font_size" />

    <TextView
        android:id="@+id/txtHeader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/app_name"
        android:textColor="#ffffff"
        android:textSize="25sp"
        android:visibility="gone" />

    <com.costum.android.widget.LoadMoreListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF"
        android:cacheColorHint="#EBEBEB"
        android:fadingEdgeLength="0dp"
        android:overScrollMode="never"
        android:scrollbars="none"
        android:visibility="gone" />

    <TextView
        android:id="@+id/notfound"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF"
        android:gravity="center"
        android:text="@string/notfound"
        android:textSize="20sp"
        android:visibility="gone" />

    <RelativeLayout
        android:id="@+id/panelBaru"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF" >

        <TextView
            android:id="@+id/netTrouble"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:text="@string/txt_failed"
            android:textSize="20sp"
            android:textStyle="bold"
            android:visibility="gone" />

        <ProgressBar
            android:id="@+id/LoadingData"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_centerInParent="true"
            android:visibility="gone" />

        <ImageButton
            android:id="@+id/btnImg"
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:contentDescription="@null"
            android:src="@drawable/coba" />
    </RelativeLayout>

</LinearLayout>

我想android:layout_height="match_parent"让这件事发生了。我该如何解决?

4 个答案:

答案 0 :(得分:1)

问题是您的列表视图与父级匹配,因此请更改您的xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/content_frame"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="#E6E6E6"
 android:orientation="vertical" >

<TextView
    android:id="@+id/tanggal"
    android:layout_width="fill_parent"
    android:layout_height="20dp"
    android:background="#FF2300"
    android:fontFamily="sans-serif-light"
    android:paddingLeft="10dp"
    android:textSize="@dimen/font_size" />

<TextView
    android:id="@+id/txtHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/app_name"
    android:textColor="#ffffff"
    android:textSize="25sp"
    android:visibility="gone" />

<com.costum.android.widget.LoadMoreListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#FFFFFF"
    android:cacheColorHint="#EBEBEB"
    android:fadingEdgeLength="0dp"
    android:overScrollMode="never"
    android:scrollbars="none"
    android:visibility="gone" />

<TextView
    android:id="@+id/notfound"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF"
    android:gravity="center"
    android:text="@string/notfound"
    android:textSize="20sp"
    android:visibility="gone" />

<RelativeLayout
    android:id="@+id/panelBaru"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF" >

    <TextView
        android:id="@+id/netTrouble"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/txt_failed"
        android:textSize="20sp"
        android:textStyle="bold"
        android:visibility="gone" />

    <ProgressBar
        android:id="@+id/LoadingData"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_centerInParent="true"
        android:visibility="gone" />

    <ImageButton
        android:id="@+id/btnImg"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:contentDescription="@null"
        android:src="@drawable/coba" />
  </RelativeLayout>

</LinearLayout>

通过这样做,您的列表视图仅占用剩余的位置。如果有任何问题请发表评论。

答案 1 :(得分:0)

更改

<com.costum.android.widget.LoadMoreListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:cacheColorHint="#EBEBEB"
    android:fadingEdgeLength="0dp"
    android:overScrollMode="never"
    android:scrollbars="none"
    android:visibility="gone" />

<com.costum.android.widget.LoadMoreListView
    android:id="@+id/listView"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:background="#FFFFFF"
    android:cacheColorHint="#EBEBEB"
    android:fadingEdgeLength="0dp"
    android:overScrollMode="never"
    android:scrollbars="none"/>

答案 2 :(得分:0)

最简单的方法是替换com.costum.android.widget.LoadMoreListView定义

 android:layout_height="match_parent"

 android:layout_height="wrap_content"

更难的方法是将所有视图的布局从LinearLayout更改为RelativeLayout。 然后你必须设置'panelBaru'alignParentBottom并使用wrap_content height和listView在它上面

答案 3 :(得分:0)

android:layout_alignParentBottom="true"