2017-08-04 73 views
-1

我想制作一个基本的计算器应用程序,所以我开始为每个数字和操作制作按钮。为了让它们对齐,我使用了一个RelativeLayout,但在它下面我有五个LinearLayout,每个LinerarLayout代表一排按钮。如何对齐两个LinearLayouts?

我的问题是以下,我使用layout_alignBottom第一行为了保持它在屏幕的底部,我试图用layout_above对齐第一行上面的第二行,但似乎我可以'吨做到这一点,因为我得到一个No resource found that matches the given name (at 'layout_above' with value '@id/firstRow').错误,实际上我得到这个错误的所有对齐属性。

这里是我的xml的一部分

<LinearLayout 
    android:id="@+id/secondRow" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_above="@id/firstRow"> 

    <Button 
     android:id="@+id/b1" 
     android:layout_width="85dp" 
     android:layout_height="85dp" 
     android:text="1" /> 

     <!-- more buttons --> 


</LinearLayout> 

<LinearLayout 
    android:id="@+id/firstRow" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true"> 


    <Button 
     android:id="@+id/bP" 
     android:layout_width="85dp" 
     android:layout_height="85dp" 
     android:layout_marginLeft="0dp" 
     android:text="." /> 

    <!-- more buttons --> 

</LinearLayout> 

我该如何调整的LinearLayouts在方式,第一行是在屏幕的底部,其它的是一个每个人的上面?

回答

0

XML是从顶部呈现为底部,所以,如果你想添加一个引用是要添加的参考一前一后的元素,你需要调用@+id,而不是@id。在你的情况,你应该这样写:

android:layout_above="@+id/firstRow" 

这是因为当时你正在从代码的第一LinearLayout,Android不具有id为“FIRSTROW”,因为它是没有登记任何元素所以你需要添加+这意味着如果稍后找到任何引用,它将被设置,如果没有,它只是对齐没有引用的视图。

0

你正在以比所需的更复杂的方式来做到这一点。

只是将它们包装成垂直方向的线性布局。

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/b1" 
      android:layout_width="85dp" 
      android:layout_height="85dp" 
      android:text="1" /> 

    <!-- more buttons --> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/b1" 
      android:layout_width="85dp" 
      android:layout_height="85dp" 
      android:text="3" /> 

    <!-- more buttons --> 

    </LinearLayout> 

    <!-- Your rows in order from top to bottom --> 

</LinearLayout> 
0

尝试使用android:layout_toStartOfandroid:layout_toEndOf