簡體   English   中英

相對布局錯誤中的線性布局

[英]linear layout in relative layout error

我有相對布局,里面有兩個線性布局

該程序無需第一個線性布局即可工作。 誰能解釋為什么?

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bngp" >

    <TextView
        android:id="@+id/Cart"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:gravity="center_horizontal"
        android:paddingTop="10dp"
        android:text="Cart"
        android:textColor="#FFFFFF"
        android:textSize="25sp"
        android:textStyle="bold" />

//這是線性布局導致錯誤

    <LinearLayout
        android:id="@+id/table"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/Cart"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/Product"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:text="Product"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/Quantity"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:gravity="center"
            android:text="Quantity"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/Price"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center"
            android:text="Price"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/Value"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center"
            android:text="Value"
            android:textColor="#000000" />
    </LinearLayout>

//線性布局結束


    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/textView1"
        android:layout_below="@id/table" />

    <TextView
        android:id="@id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/linear"
        android:paddingBottom="20dp"
        android:paddingTop="20dp"
        android:text="Total Value: "
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/Final_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/linear"
        android:layout_toRightOf="@id/textView1"
        android:paddingBottom="20dp"
        android:paddingTop="20dp"
        android:textColor="#FFFFFF" />

    <LinearLayout
        android:id="@id/linear"
        style="@android:style/ButtonBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Confirm" />

        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Clear" />
    </LinearLayout>

</RelativeLayout>

立即檢查您的布局。 我編輯過一些行。 使用@ + id而不是@id。 你必須知道@ id,@ + id和@android:id之間的區別。

"@android:id" which means you are referencing an item in Android namespace.

"@id" means you have defined ids in your application itself, 

例如:-

================================================== =========

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <item name="TextView1" type="id"/>
</resources>

在這種情況下,您已在資源中定義了textview id。 現在你可以用,

<TextView
    android:id="@id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>

================================================== =========

"@+id" means you are created a view (textview , layouts , etc..) in your layout and you wanted to add the id to R.java.

現在檢查你的布局,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bngp" >

<TextView
    android:id="@+id/Cart"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:gravity="center_horizontal"
    android:paddingTop="10dp"
    android:text="Cart"
    android:textColor="#FFFFFF"
    android:textSize="25sp"
    android:textStyle="bold" />

<LinearLayout
    android:id="@+id/table"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/Cart"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/Product"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="6"
        android:text="Product"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/Quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:gravity="center"
        android:text="Quantity"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/Price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:text="Price"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/Value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:gravity="center"
        android:text="Value"
        android:textColor="#000000" />
</LinearLayout>

<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/textView1"
    android:layout_below="@+id/table" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linear"
    android:paddingBottom="20dp"
    android:paddingTop="20dp"
    android:text="Total Value: "
    android:textColor="#FFFFFF" />

<TextView
    android:id="@+id/Final_result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linear"
    android:layout_toRightOf="@+id/textView1"
    android:paddingBottom="20dp"
    android:paddingTop="20dp"
    android:textColor="#FFFFFF" />

<LinearLayout
    android:id="@+id/linear"
    style="@android:style/ButtonBar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" >

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Confirm" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Clear" />
</LinearLayout>

</RelativeLayout>

對於初學者而言,不要使用@ id / blah,總是使用@ + id / blah(即使你沒有定義視圖)。 它沒有傷害,並且可以防止一些真正難以追蹤的錯誤。

有關詳細信息,請提供您收到的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM