【问题标题】:How to make ImageButton always be at the bottom of the screen如何使 ImageButton 始终位于屏幕底部
【发布时间】:2013-12-16 10:08:22
【问题描述】:

我为此案例创建了一个 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" 让这一切发生的。我该如何解决?

【问题讨论】:

  • 将线性更改为相对并将android:layout_alignParentBottom="true" 用于您的图像按钮
  • 给你的列表视图一个特定的高度

标签: java android xml android-layout


【解决方案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>

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

【讨论】:

  • Hai @Cropper :我试图给你结果是ImageButton 显示在屏幕底部,但我的列表视图消失了,并且不显示数据。有什么问题吗?
【解决方案2】:

改变

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

【讨论】:

    【解决方案3】:

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

     android:layout_height="match_parent"
    

     android:layout_height="wrap_content"
    

    更难的方法是将 All 视图的布局从 LinearLayout 更改为 RelativeLayout。 然后你必须设置'panelBaru' alignParentBottom 并在其上方设置 wrap_content 高度和 listView

    【讨论】:

      【解决方案4】:
      android:layout_alignParentBottom="true"
      

      【讨论】:

      • 您也可以添加一些描述。
      猜你喜欢
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2020-11-30
      相关资源
      最近更新 更多