构建布局最有效的方法

时间:2012-11-29 09:06:07

标签: android android-layout

我会有数百个这样的布局(请参见下图),所以我需要以最有效的方式构建它。有三个区域,其中两个首先按底线对齐,左边一个包含ImageView,另外两个TextView一个在另一个之下。在第二个视图下有另一个TextView视图。我应该使用TableLayout作为容器,使用LinearLayout作为第二个容器吗?会有效吗?谢谢。

enter image description here

5 个答案:

答案 0 :(得分:0)

第一个消息是使ImageView“更高”,因此它覆盖了高度的TextViews,或者使底部的TextView更宽,以覆盖ImageView和上层TextView ..

在我看来这看起来更好看,这个空旷的空间让我眼中的刺痛......

然后我会推荐TableLayout,当然这个布局在单独的文件中,所以你可以重复使用include ..;)

欢呼,希望它有所帮助

答案 1 :(得分:0)

RelativeLayout内,你应该使用Image ViewAlignParentLeft="true"添加alignParenttop = "true",然后将第一个TextView添加为imageView的RightOff,第二个文本视图将其添加到第一个LayoutBottom

TextView

使用Relative Layouts,它们被认为比Linear Layouts更轻。

答案 2 :(得分:0)

试试这个

<RelativeLayout 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"
tools:context=".MainActivity" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="41dp"
    android:layout_marginTop="39dp"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/imageView1"
    android:layout_marginLeft="10dp"
    android:layout_toRightOf="@+id/imageView1"
    android:orientation="vertical" >

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView 2" />
</LinearLayout>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/linearLayout1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/imageView1"
    android:text="TextView" />

答案 3 :(得分:0)

试试这个,它会提供你在问题中描述的布局:

    <LinearLayout 
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <ImageView 
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:src="@drawable/img" />

        <RelativeLayout 
           android:layout_width="0dp"
           android:layout_height="wrap_content"
           android:layout_weight="1">

           <TextView 
              android:id="@+id/txt1"
              android:layout_alignParentTop="true"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="textView1" />

          <TextView 
             android:id="@+id/txt2"
             android:layout_below="@+id/txt1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text="textView1" />
       </RelativeLayout>
   </LinearLayout>

答案 4 :(得分:0)

试试这个:

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bg_l_l"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/bg_l_l"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="chintan"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="khetiya"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/bg_l_l"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="this is extra text and this will not spred under the imageview as you can see."
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>