2014-11-14 49 views
1

嗨我有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> 

谁能请帮助?

回答

2

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 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> 
+0

十分感谢!有用! – Allrounder 2014-11-14 13:11:18