如何在framelayout中显示彼此之下的按钮?
问题描述:
嗨我有FrameLayout
并且想在此布局中添加two buttons (or more)
。
第一个按钮显示,但是当添加第二个按钮时,似乎将it beneath the first button
。我试过margin top gravity
和其他几个,但似乎无法显示第一个下面的按钮。如何在framelayout中显示彼此之下的按钮?
这里是我的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"
android:background="@drawable/logo1">
<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" >
<Button
android:id="@+id/Distancecalc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
<Button
android:id="@+id/Distance"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
</FrameLayout>
</LinearLayout>
</TabHost>
谁能请帮助?
答
FrameLayout旨在屏蔽屏幕上的区域以显示a single item
。一般来说,FrameLayout应该被用来保存a single child view
,因为可以很难组织子视图,这种方式可以扩展到不同的屏幕尺寸,而不需要儿童相互重叠。但是,您可以使用android:layout_gravity
属性将多个孩子添加到FrameLayout和control their position within the FrameLayout by assigning gravity to each child
。
子视图绘制在堆栈中,最近添加的子项位于顶部。 FrameLayout的大小是其最大子项(加上填充)的大小,可见与否(如果FrameLayout的父级允许)。只有在setConsiderGoneChildrenWhenMeasuring()
设置为true的情况下,GONE视图才用于确定尺寸。
为了您的解决方案中使用LinearLayout with vertical orientation
或RelativeLayout
<?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"
android:background="@drawable/logo1">
<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" />
<LinearLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<Button
android:id="@+id/Distancecalc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
<Button
android:id="@+id/Distance"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Distance Calculator" />
</LinearLayout>
</LinearLayout>
</TabHost>
十分感谢!有用! – Allrounder 2014-11-14 13:11:18