如何在不超出固定大小的情况下将布局包装到其视图中?

时间:2012-12-17 09:07:54

标签: android xml android-linearlayout

我正在使用此布局以获得三个固定视图:

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

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:textColor="#372c24" 
        android:paddingLeft="10dp"/>

    <View
        android:id="@+id/space"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="5"
        android:background="@android:color/transparent" />

    <LinearLayout
        android:id="@+id/ratingLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:orientation="horizontal" 
        android:background="@drawable/shape_popup">
        <TextView
            android:id="@+id/rateNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:paddingTop="2dp" 
          />
        <ImageView
            android:contentDescription="@string/app_name"
            android:id="@+id/rateStar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/rate_star"/>
    </LinearLayout>

</LinearLayout>

我希望我的ratingLayout包含其内容,但不要超过其固定大小。这可能吗?

2 个答案:

答案 0 :(得分:0)

例如

   convertView = inflator.inflate(R.layout.item_grid, null);

                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                        imageSize, imageSize);
                convertView.setLayoutParams(new GridView.LayoutParams(params));

OR(例如)

android:layout_height="20dp"

答案 1 :(得分:0)

删除ratingLayout上的权重,并将rateNumber和rateStar视图的layout_width属性设置为“wrap_content”而不是“match_parent”。