2014-03-26 33 views
0

有关于这个话题的一些类似的问题,我现在已经尝试了很多,但他们不工作。 我有三个按钮,我希望它们占用屏幕顶部的相同数量的空间。我试图把它们放在线性布局和使用权重,但他们根本不在图形布局上。任何建议按钮占用相同的空间在android

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="top" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context=".FragActivity" > 

     <LinearLayout   
      android:layout_width="match_parent"   
      android:layout_height="0dp"   
      android:orientation="horizontal"   
      android:weightSum="1"   
      android:layout_gravity="top"> 

      <Button 
       android:id="@+id/home" 
       android:layout_width="0dp" 
       android:layout_weight="0.5" 
       android:layout_height="wrap_content" 
       android:onClick="home" 
       android:text="Home" /> 

      <Button 
       android:id="@+id/Friends" 
       android:layout_width="0dp" 
       android:layout_weight="0.5" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@+id/home" 
       android:onClick="Friends" 
       android:text="Friends" /> 

      <Button 
       android:id="@+id/makeEvent" 
       android:layout_height="wrap_content" 
       android:layout_width="0dp" 
       android:layout_weight="0.5" 
       android:layout_toRightOf="@+id/home" 
       android:onClick="makeEvent" 
       android:text="Make Event" /> 

     </LinearLayout> 
    </RelativeLayout> 
+1

你的LinearLayout永远不会显示出来:'机器人:layout_height = “0dp”'。此外它的weightSum是错误的 - 应该是1.5(0.5 * 3) - 但你可以简单地删除它(Android管理自己的总和) –

回答

1

<LinearLayout   
     android:layout_width="match_parent"   
     android:layout_height="wrap_content"   
     android:orientation="horizontal"   
     android:weightSum="3"   
     android:layout_gravity="top"> 

     <Button 
      android:id="@+id/home" 
      android:layout_width="wrap_content" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 
      android:onClick="home" 
      android:text="Home" /> 

     <Button 
      android:id="@+id/Friends" 
      android:layout_width="wrap_content" 
      android:layout_weight="1" 
      android:layout_height="wrap_content" 

      android:onClick="Friends" 
      android:text="Friends" /> 

     <Button 
      android:id="@+id/makeEvent" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_weight="1" 

      android:onClick="makeEvent" 
      android:text="Make Event" /> 

    </LinearLayout> 
</RelativeLayout> 

所有固定取出android:layout_toRightOf="@+id/home"。你在一个线性布局的芽中,你不设置宽度和高度,为零。你有三个按钮,所以重量总和为3,并给每个按钮的权重1.删除放置标签,因为在线性布局,他们将被放置在线性风格。

与我代替你的代码,并给它一个镜头

+1

这也应该工作,只是一个说明...如果他们都将采取平等那么'weight_sum'就不需要了,只要它们相同,'weight's并不重要。另外,'width'应该是水平布局中的'0dp',使用'weights' – codeMagic

+0

true,但是如果你不在没有重量的情况下将按钮置于linearlayout中,你可能会遇到问题,从一个屏幕到另一个屏幕。他的引力设置为最高,所以如果在手机上这些按钮可能占据整个顶部,而在平板电脑上,按钮只会占据屏幕侧面的相同空间。可能想要改变他的重力,以保持稳定性 – La5t5tarfighter

+0

我不明白这一点,“如果你不把按钮放在没有重量的线性布局中”。而且,不,如果他们占用相同数量的空间,那么他们不应该缩放问题 – codeMagic

1

你已经得到了heightwidth向后的水平layout. Switch your的LinearLayout到

​​

,否则你的身高是0,所以你当然会看不到任何东西。

我也删除了weight_sum,因为在这种情况下它不是必需的,所以只需让设备为您计算就更安全。

您也可以从Button因为属性不存在LinearLayout这是你的Button被包裹在。

0

设置android:weightSum="3"LinearLayoutandroid:layout_weight="1"Button如下...

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="top" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".FragActivity" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:orientation="horizontal" 
     android:weightSum="3" > 

     <Button 
      android:id="@+id/home" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="home" 
      android:text="Home" /> 

     <Button 
      android:id="@+id/Friends" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/home" 
      android:layout_weight="1" 
      android:onClick="Friends" 
      android:text="Friends" /> 

     <Button 
      android:id="@+id/makeEvent" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="makeEvent" 
      android:text="Make Event" /> 
    </LinearLayout> 

</RelativeLayout> 
相关问题