Android相对视图 - 按钮消失

时间:2010-09-11 19:18:55

标签: android

尝试创建类似于Android Facebook应用的布局(带有应用名称的顶部栏和右边对齐的2个按钮)。

尝试了一切:(我最接近的一个按钮消失了......

以下是代码:(使用顶部的亲戚创建粘性页眉和页脚)

“搜索”按钮与右侧对齐时,“添加”按钮消失。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content" android:layout_height="wrap_content"
 android:orientation="vertical">
 <RelativeLayout android:layout_width="fill_parent"
  android:layout_height="50dip" android:id="@+id/top_control_bar">
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
   android:layout_height="fill_parent" android:src="@drawable/top_background">
   <TextView android:layout_width="wrap_content" android:layout_height="20dip" 
    android:text="APP" android:layout_gravity="left|center" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/add_bookmark" />
   <Button android:id="@+id/add_bookmark" android:layout_width="wrap_content"
    android:layout_height="fill_parent" android:text="Add" android:layout_gravity="right|center" android:layout_alignParentRight="true" />
   <Button android:id="@+id/search_bookmark" android:layout_width="wrap_content"
    android:layout_height="fill_parent" android:text="Search" android:layout_gravity="right|center" android:layout_alignParentRight="true"  />
  </RelativeLayout>
 </RelativeLayout>
 <LinearLayout android:id="@+id/bottom_control_bar"
  android:layout_width="fill_parent" android:layout_height="wrap_content"
  android:layout_alignParentBottom="true">
  <Button android:layout_width="wrap_content"
   android:layout_height="fill_parent" android:text="Backup" />
  <Button android:layout_width="wrap_content"
   android:layout_height="fill_parent" android:text="Restore" />
 </LinearLayout>
 <ListView android:id="@android:id/list" android:layout_width="fill_parent"
  android:layout_height="0dip" android:layout_below="@id/top_control_bar"
  android:layout_above="@id/bottom_control_bar"></ListView>
 <TextView android:id="@android:id/empty" android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="No Bookmarks found. You can add one by clicking the star."
  android:layout_below="@id/top_control_bar" android:layout_above="@id/bottom_control_bar" />
</RelativeLayout>

非常感谢任何帮助! :)

2 个答案:

答案 0 :(得分:0)

按钮在那里,但在搜索按钮后面。如果您切换添加和搜索按钮的顺序,您将看到两个按钮都在那里。两者共享相同的右边界坐标。像使用“app”TextView一样使用layout_toLeftOflayout_toRightOf

您可以使用以下代码替换内部RelativeLayout


<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
   <TextView android:layout_width="wrap_content" android:layout_height="20dip" 
    android:text="APP" android:layout_gravity="left|center" android:layout_alignParentLeft="true" android:layout_toLeftOf="@id/add_bookmark" />
   <Button android:id="@+id/search_bookmark" android:layout_width="wrap_content"
    android:layout_height="fill_parent" android:text="Search" android:layout_gravity="right|center" android:layout_alignParentRight="true" />
   <Button android:id="@+id/add_bookmark" android:layout_width="wrap_content"
    android:layout_height="fill_parent" android:text="Add" android:layout_gravity="right|center" android:layout_toLeftOf="@id/search_bookmark" />
</RelativeLayout>

答案 1 :(得分:0)

好吧它没有消失,它在你的搜索按钮下。这是因为两个按钮都是alignParentRight = true。

将搜索设置为parentRight,将搜索设置为添加到左侧。这应该可以解决问题。

此外:您有太多嵌套布局。您可以轻松减少以提高效率。记住在android中创建/膨胀视图非常昂贵(记忆和时间)。