如何让UI看起来正确

时间:2010-08-24 18:28:04

标签: android xml user-interface

我在使ListView正确显示时遇到问题。目前看起来像这样,使用以下xml代码:
alt text

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/favs_main">
    <Button
        android:text="Return to Home"
        android:id="@+id/return_button"
        android:layout_width="150dp" 
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:textSize="15sp"/>
    <ListView
        android:id="@+id/favsListView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dp"
        android:layout_above="@id/return_button"/>
</RelativeLayout>

如果您注意到屏幕上的列表已关闭。我希望它只是在收藏夹文本下面,而不是在返回主页按钮上方。然而,问题是我总是希望按钮显示而列表视图只占据收藏夹文本和按钮之间的空间。文本来自背景图像,所以我不能在下面对齐。因此,即使有100件物品,我仍然希望显示按钮。

感谢您的帮助

5 个答案:

答案 0 :(得分:2)

如果“收藏夹”一词是RelativeLayout的背景属性中建议的背景图片的一部分,那么您将无法在不使用hacky边距或类似效果的情况下对齐其下方的元素。如果要将单词下方的元素对齐,请将其分隔为不同的ImageView,并将ListView的layout_below设置为该ImageView的id。要使元素在两个其他元素之间正确对齐,请使用layout_above和layout_below的组合。

答案 1 :(得分:1)

难道你不能将ListView与Parent'Top对齐并为ListView设置边距,使其低于背景文本吗? 您还可以更改背景以在ImageView中提供Text,并将ListView对齐到ImageView下方。

答案 2 :(得分:1)

您可能希望查看使用footerView,而不是尝试使持久视图始终显示在ListView下并对齐它(您可以执行此操作,请参阅其他建议):

http://developer.android.com/intl/de/reference/android/widget/ListView.html#addFooterView

“添加固定视图以显示在列表底部。”

请注意,如果您最终需要做的不仅仅是一个Button,它也可以是另一种布局。

答案 3 :(得分:1)

这是我的列表视图,其中有多个条目,textview和按钮固定在按钮中。我没有插入背景。试试这个希望它会有所帮助。

http://www.techuv.com/layout-with-butoon-and-textview-fixed-in-bottom/

答案 4 :(得分:1)

您可以使用简单的LinearLayout并使用ListView上的weight属性:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="fill_parent"
  android:background="@drawable/favs_main">
     <TextView 
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
     />
     <ListView
         android:id="@+id/favsListView"
         android:layout_width="wrap_content"
         android:layout_weight="1"
         android:layout_height="wrap_content"
         android:layout_marginTop="180dp"/>
     <Button
         android:text="Return to Home"
         android:id="@+id/return_button"
         android:layout_width="150dp" 
         android:layout_height="wrap_content"
         android:layout_marginTop="10dp"
         android:layout_centerHorizontal="true"
         android:textSize="15sp"/>
 </LinearLayout>