我想在此示例中创建一个TabView:http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
在它下面,我想要一个带有按钮的操作栏,它应该始终显示在屏幕的底部。怎么样当我将另一个具有垂直方向的LinearLayout放置到TabHost时,它会消失超出屏幕限制。这是我的xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="5dp" />
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:baselineAligned="false">
<Button android:text="Add" android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<ToggleButton android:text="Aus" android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
</LinearLayout>
</TabHost>
有没有办法动态地执行此操作?
编辑:添加了我的xml代码
答案 0 :(得分:0)
您可能需要在另一个线性布局中包围“操作栏”和其他线性布局。
因此,您的标签为其内容提供了线性布局。 在该线性布局中,您可以获得真实内容的线性布局。 然后你有你的行动吧。
Psuedo代码:
<LinearLayout...>
<LinearLayout...>
<!-- Views here for the content of the tab -->
</LinearLayout>
<MyActionBarView...>
</MyActionBarView>
</LinearLayout>
答案 1 :(得分:0)
在那个布局定义中,必须给出一些东西。目前,标签内容的FrameLayout
和它下面的LinearLayout
都要求用“android:layout_height =”fill_parent“来填充屏幕的剩余高度。
为了做您期望的事情,您需要定义“操作栏”LinearLayout
以垂直包装其内容,并告诉FrameLayout
简单地填充选项卡之间的可用空间那个底栏。我们通过添加权重参数来做到这一点。我已经用以下两件事修改了你的内部布局:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:padding="5dp" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false">
<Button android:text="Add"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<ToggleButton android:text="Aus"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
</LinearLayout>
希望有帮助!
答案 2 :(得分:0)
我通过在android-layout标签中搜索关键字bottom找到了答案。答案是相对布局。这是功能正常的xml:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_alignParentTop="true" />
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/relativeLayout1"
android:layout_alignParentBottom="true">
<Button android:text="Add" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_alignParentLeft="true" />
<ToggleButton android:text="Aus" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_alignParentRight="true" />
</RelativeLayout>
<FrameLayout android:layout_width="fill_parent"
android:id="@android:id/tabcontent" android:layout_height="wrap_content"
android:padding="5dp" android:layout_below="@android:id/tabs"
android:layout_alignParentLeft="true"></FrameLayout>
</RelativeLayout>
</TabHost>