2014-04-01 26 views
0

我有一个关于如何为android活动的XML文件定位元素的问题。Android XML文件中元素的位置

我需要的,以实现如下: Desired Layout

基本上我需要: 一组9个方格(3×3表)在屏幕的第二部分覆盖在屏幕高度 的50%,3均匀分布的区域,每个区域只有一个文本视图/按钮。

我创建使用的tableview与此代码的集合的9个正方形:

<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="386dp" 
    android:stretchColumns="*" > 

    <TableRow 
     android:id="@+id/Row1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/square1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="1" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square2" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="3" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square3" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="3" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/Row2" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/square4" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="1" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square5" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="1" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square6" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="1" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/Row3" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/square7" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="1" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square8" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="2" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 

     <Button 
      android:id="@+id/square9" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center_horizontal" 
      android:text="3" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textSize="60sp" /> 
    </TableRow> 
</TableLayout> 

该部分被包括在一个相对布局。 现在我无法以任何方式将此部分设置为屏幕的50%,并使用3个按钮添加第二个50%。

希望你能帮助我。我搜索这里的答案,但没有发现任何相关的话题RelativeLayout

回答

0

^h ERE你去:

<TableLayout 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" > 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    > 

    <Button 
     android:text="1" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="2" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="3" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
</TableRow> 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    > 

    <Button 
     android:text="4" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="5" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="6" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
</TableRow> 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    > 

    <Button 
     android:text="7" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="8" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
    <Button 
     android:text="9" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     /> 
</TableRow> 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    >   
    <Button 
     android:text="10" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     />   
</TableRow> 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    >   
    <Button 
     android:text="11" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     />   
</TableRow> 

<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    >   
    <Button 
     android:text="12" 
     android:layout_height="match_parent" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     />   
</TableRow> 

0

使用LinearLayout来代替,而android:weight属性来达到50%的屏幕高度如下...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="2" > 

    <TableLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_wieght="1" > 

     .............. 

     .............. 

    </TableLayout> 


    <!-- Other other layout which will take android:layout_wieght="1" --> 

</LinearLayout> 
0

这将是一个非常简单的只有使用的LinearLayout这个问题的答案:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

      <Button 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:text="one part"/> 

     </LinearLayout>  


    </LinearLayout> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:text="one part"/> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:text="one part"/> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:text="one part"/> 

    </LinearLayout> 


</LinearLayout> 

result