在ImageView旁边的LinearLayout中安装两个textView

时间:2012-01-15 20:55:44

标签: android android-layout

我有这个布局:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/fill_parent"
    android:background="@color/white"
    android:padding="2dip">

    <ImageView
        android:id="@+id/img_album"        
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"        
        android:layout_marginRight="6dip"  
        android:layout_centerVertical="true"  
        android:padding="5dp"    
        />
   <LinearLayout 
       style="@style/fill_parent"
       android:orientation="horizontal"
       android:layout_toRightOf="@id/img_album"
       android:layout_centerVertical="true">
     <TextView
         android:id="@+id/album_title"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"                    
         android:singleLine="true"                           
         android:textColor="@color/black"            
         android:layout_marginRight="10dp"
         />

     <TextView        
        android:id="@+id/picts_number"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"                
        android:textColor="@color/black"        
        />
    </LinearLayout>
</RelativeLayout>

这给了我这个形象:

enter image description here

我不知道为什么我没有得到专辑的标题,接下来是picts的数量。

好吧,我使用layout_weight属性做了一些事情:

<TextView
         android:id="@+id/album_title"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"                    
         android:singleLine="true"                           
         android:textColor="@color/black"            
         android:layout_marginRight="10dp"
         android:layout_weight="1"
         />

 <TextView        
    android:id="@+id/picts_number"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"                
    android:textColor="@color/black"      
    android:layout_weight="1"  />

我真的不知道为什么,我现在得到标题旁边的数字

enter image description here

有人能告诉我:

  1. 为什么我在第一个场景中没有得到这个号码,但是我在第二个场景中得到了这个号码。

  2. 如何将文本扩展到Linearyout的所有宽度,所以     第二篇文字“智能手机......”并没有伸展,但适合它     父节点。

  3. 谢谢!

2 个答案:

答案 0 :(得分:1)

使用width = 0dip和权重= 1.我做到了!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/fill_parent"
    android:background="@color/white"
    android:padding="2dip">

    <ImageView
        android:id="@+id/img_album"        
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"        
        android:layout_marginRight="6dip"  
        android:layout_centerVertical="true"  
        android:padding="5dp"    
        />
   <LinearLayout 
       style="@style/fill_parent"
       android:orientation="horizontal"
       android:layout_toRightOf="@id/img_album"
       android:layout_centerVertical="true"       
       android:id="@+id/album_details">
     <TextView
         android:id="@+id/album_title"
         android:layout_width="0dip"
         android:layout_height="wrap_content"                    
         android:singleLine="true"                           
         android:textColor="@color/black"            
         android:layout_marginRight="30dp"           
         android:textSize="17sp"
         android:layout_weight="1"
         />

     <TextView        
        android:id="@+id/picts_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"                
        android:textColor="@color/black"      
        android:layout_weight="0"  
        android:textSize="17sp"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        />
    </LinearLayout>
</RelativeLayout>

答案 1 :(得分:0)

尝试使用FrameLayout而不是RelativeLayout。使用它来构建布局真的更容易。像这样的东西,但尺寸和风格适应:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:padding="2dp">

    <ImageView
        android:id="@+id/img_album"        
        android:layout_width="50dp"
        android:layout_height="fill_parent"        
        android:layout_marginRight="6dp"  
        android:cropToPadding="true"
        android:layout_centerVertical="true" 
        android:padding="5dp"    
    />

    <TextView
        android:id="@+id/album_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"  
        android:layout_marginLeft="50dp"
        android:layout_gravity="center"               
        android:singleLine="true"                           
        android:textColor="@color/black"            
        android:layout_marginRight="50dp"
    />

    <TextView        
        android:id="@+id/picts_number"
        android:layout_width="50dp"
        android:layout_height="wrap_content"    
        android:layout_gravity="right|center_vertical"                      
        android:textColor="@color/black"        
    />
</FrameLayout>