我想出了如何在屏幕顶部显示菜单栏。当我在使用expandableListView创建的主菜单中移动时,它保持在原位。但是,我希望菜单栏位于屏幕底部而不是顶部。我玩了relativeView并在底部找到了条形图,然而,主菜单消失了。 这是我的主要xml文件
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/buttonbefore"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="back" />
<Button
android:id="@+id/buttonnext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="Next" />
</LinearLayout>
<ExpandableListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items" />
然后我用它来java让它出现在我的程序中。
LinearLayout bottomMenu = (LinearLayout)findViewById(R.id.buttons);
我试着玩重力而没有做任何事情。如果您认为它有用,我可以从我的程序中添加更多代码。
答案 0 :(得分:2)
我假设您的buttons
LinearLayout是您所指的'菜单栏'?
您可以使用RelativeLayout或LinearLayout实际完成您正在寻找的内容。
<强>的LinearLayout:强>
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" >
<ExpandableListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items" />
</LinearLayout>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="horizontal" >
<Button
android:id="@+id/buttonbefore"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="back" />
<Button
android:id="@+id/buttonnext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Next" />
</LinearLayout>
</LinearLayout>
按钮通过设置重力进行底部对齐,而列表被告知占用所有其他可用空间,通过赋予它“1”的权重并将高度设置为“0dp”。这将导致它尽可能地拉伸,而不会将按钮推离屏幕。
<强> RelativeLayout的:强>
<?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" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/buttons"
android:orientation="vertical" >
<ExpandableListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items" />
</LinearLayout>
<LinearLayout
android:id="@+id/buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
<Button
android:id="@+id/buttonbefore"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="back" />
<Button
android:id="@+id/buttonnext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Next" />
</LinearLayout>
</RelativeLayout>
通过在父级上设置对齐,按钮是底部对齐的。该列表被告知填充所有高度,但保持在按钮上方。
总的来说:为了实现这一点,我非常确定列表和空视图需要在他们自己的布局中组合在一起。
答案 1 :(得分:0)
将按钮对齐到底部的方法是将顶级LinearLayout更改为RelativeLayout。然后,您可以将属性android:layout_alignParentBottom="true"
添加到包含两个按钮的LinearLayout @+id/buttons
。