Android:正确使用RelativeLayout

时间:2012-05-26 10:24:33

标签: android-layout

我将尝试使用文本表示所需的布局:

股票名称

==========

符号|得分

GOOG | 76

符号 GOOG 应该在一个垂直的线性布局中进行分组,它们应该左对齐得分 76 也应该采用单个垂直线性布局来对它们进行分组,但它们应该对齐。

这是我的布局。我可以通过你在下面看到的方式实现它。有谁知道我做错了什么? (这只是布局的相关部分)

<?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="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/stock_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp" />
</LinearLayout>

<RelativeLayout
    android:id="@+id/relative_layout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/stock_symbol" />

        <TextView
            android:id="@+id/stock_symbol"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30dp" />
    </LinearLayout>


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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/stock_score" />

        <TextView
            android:id="@+id/stock_score"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30dp" />
    </LinearLayout>
</RelativeLayout> 

我还尝试在android:layout_alignLeft="@+id/relative_layout"内使用android:layout_alignRight="@+id/relative_layout"LinearLayout,但没有成功。

1 个答案:

答案 0 :(得分:0)

我在聊天室“Android-People”中找到了@RobinHood的错误:

我必须用RelativeLayout替换内部LinearLayouts,内部RelariveLayout应该从android:layout_width =“fill_parent”更改为android:layout_width =“wrap_content”

<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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/stock_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp" />
</LinearLayout>

<RelativeLayout        
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"        
    android:orientation="horizontal" >

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"            
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/stock_symbol" />

        <TextView
            android:id="@+id/stock_symbol"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30dp" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/stock_score" />

        <TextView
            android:id="@+id/stock_score"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30dp" />
    </RelativeLayout>
</RelativeLayout>