如何在framelayout中显示彼此之下的按钮?

时间:2014-11-14 12:26:56

标签: android android-layout

您好我FrameLayout并希望在此布局中添加two buttons (or more) 第一个按钮显示,但是当添加第二个按钮时,它似乎放置it beneath the first button。我已经尝试了margin top gravity和其他一些更多,但似乎无法显示第一个下方的按钮。

这是我的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>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

FrameLayout旨在阻止屏幕上的某个区域显示a single item。通常,FrameLayout应该用于保存a single child view,因为以一种可以扩展到不同屏幕大小而儿童不会相互重叠的方式组织子视图可能很困难。但是,您可以使用control their position within the FrameLayout by assigning gravity to each child属性将多个子项添加到FrameLayout和android:layout_gravity

子视图以堆栈形式绘制,最近添加的子项位于顶部。 FrameLayout的大小是其最大子项(加上填充)的大小,可见或不可见(如果FrameLayout的父级允许)。仅当setConsiderGoneChildrenWhenMeasuring()设置为true时,GONE视图才会用于调整大小。

对于您的解决方案,请使用LinearLayout with vertical orientationRelativeLayout

<?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>