Linear和RelativeLayouts的Android XML对齐问题。

时间:2012-06-05 10:10:53

标签: android android-xml

我想在Android XML中设计这个布局

enter image description here

我写了xml并且工作正常而没有放“TEXT VIEW 2”代码。

这是我的XML文件,没有放入TEXT VIEW 2: -

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

    >

<RelativeLayout 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id="@+id/header"
    >

    <!-- This is TEXTVIEW 1 -->
    <TextView 
    android:id="@+id/TEXTVIEW1"
        android:text="ITEM"
        android:layout_alignParentRight="true"
        android:background="@drawable/txtbackground"
        android:layout_alignTop="@+id/list_image"
        android:layout_toRightOf="@+id/list_image"
        android:layout_width="wrap_content"
        android:textSize="18dip"
        android:layout_height="100dip"
        android:textColor="#000000"
        android:textStyle="bold"

    />

    <ImageView     
    android:id="@+id/list_image"   
    android:layout_alignParentLeft="true"
        android:layout_width="100dip"
        android:layout_height="100dip"
        android:src="@drawable/image"
    />

</RelativeLayout>

    <!-- WebView  -->
    <LinearLayout android:id="@+id/thumbnail"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="0dip"
        android:layout_below="@+id/header"
        android:layout_marginTop="5dip"
        > 

        <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webkit"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"

    />

    </LinearLayout>    

</RelativeLayout>

任何人都可以告诉我,我应该把TEXTVIEW2代码放在哪里,就像我给出的图形布局图像一样。

TEXTVIEW 2的代码与TEXTVIEW 1相同: -

<!-- This is TEXTVIEW 2 -->
        <TextView 
        android:id="@+id/TEXTVIEW2"
            android:text="ITEM"
            android:layout_alignParentRight="true"
            android:background="@drawable/txtbackground"
            android:layout_alignTop="@+id/list_image"
            android:layout_toRightOf="@+id/list_image"
            android:layout_width="wrap_content"
            android:textSize="18dip"
            android:layout_height="100dip"
            android:textColor="#000000"
            android:textStyle="bold"

        />

先谢谢。

6 个答案:

答案 0 :(得分:2)

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/icon" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="24dp"
        android:layout_toRightOf="@+id/imageView1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2" />

</RelativeLayout>

答案 1 :(得分:0)

<LinearLayout 
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
  android:layout_alignParentRight="true"
>
<!-- This is TEXTVIEW 1 -->
<TextView 
android:id="@+id/TEXTVIEW1"
    android:text="ITEM"

    android:background="@drawable/txtbackground"
    android:layout_alignTop="@+id/list_image"
    android:layout_toRightOf="@+id/list_image"
    android:layout_width="wrap_content"
    android:textSize="18dip"
    android:layout_height="100dip"
    android:textColor="#000000"
    android:textStyle="bold"

/>

<!-- This is TEXTVIEW 2 -->
    <TextView 
    android:id="@+id/TEXTVIEW2"
        android:text="ITEM"
        android:layout_alignParentRight="true"
        android:background="@drawable/txtbackground"
        android:layout_alignTop="@+id/list_image"
        android:layout_toRightOf="@+id/list_image"
        android:layout_width="wrap_content"
        android:textSize="18dip"
        android:layout_height="100dip"
        android:textColor="#000000"
        android:textStyle="bold"

    />

答案 2 :(得分:0)

TEXTVIEW1放在其他属性

之后
android:layout_toRightOf="@id/TEXTVIEW1"

此外,无需将WebView放在单独的LinearLayout中。 只需在WebView声明中添加以下内容:

android:layout_below="@id/list_image" 

答案 3 :(得分:0)

你可以把它放在你的代码中的任何地方,RelativeLayout根据他们的参数放置元素,而不是它们列出的顺序。如果它没有正确显示它是因为你的android:参数,在这种情况下,它有它的事实与TextView1完全相同的参数意味着Android会将它转储到TextView1之上 - 如果它们放在同一个位置,RelativeLayout会将视图叠加在一起。

要在TextView1下获取它,您应该使用以下内容:

<TextView 
    android:id="@+id/TEXTVIEW2"
        android:text="ITEM"
        android:background="@drawable/txtbackground"
        android:layout_alignLeft="@+id/TEXTVIEW1"
        android:layout_below="@+id/TEXTVIEW1"
        android:layout_width="wrap_content"
        android:textSize="18dip"
        android:layout_height="100dip"
        android:textColor="#000000"
        android:textStyle="bold"

    />

答案 4 :(得分:0)

似乎你误解了RelativeLayout的概念 - 以避免ViewGroup的不必要的嵌套。

我建议像这样(伪XML):

RelativeLayout ->
  ImageView (aligned to top-left corner, with some padding)
  TextView (aligned to right of ImageView and to top, with padding)
  TextView (aligned to right of ImageView and to bottom of previous TextView, with padding)
  WebView (aligned to bottom of ImageView)

请参阅?关键是,当你使用RelativeLayout作为根元素时,你不需要在彼此内部有很多嵌套的ViewGroup(如LinearLayout)。

答案 5 :(得分:0)

在Textview 2中尝试此操作

android:layout_above="textView 1"
android:layout_alignRight="image view"