我使用一系列带有TextView对象的ImageButtons作为标题。我希望以统一的大小显示图像,填充屏幕的宽度(UI被强制进入横向模式)。 我的XML布局包括以下内容:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonHolidays"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/holidays"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/hagim" />
<TextView
android:id="@+id/EditTextHoliday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="none"
android:onClick="chooseType"
android:background="@color/White"
android:textColor="@color/Black"
android:text="@string/holidays" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonPeople"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/people"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/people" />
<TextView
android:id="@+id/editTextPeople"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="none"
android:onClick="chooseType"
android:background="@color/White"
android:textColor="@color/Black"
android:text="@string/professions" />
</LinearLayout>
</LinearLayout>
据我所知,两个垂直的LinearLayout对象包含配置了完全相同参数的对象,文本和实际图像对象除外。图像对象的大小完全相同。尽管如此,UI显示以下内容:
非常感谢任何解释。
答案 0 :(得分:0)
您可以使用weights
来避免这种情况。您必须将LinearLayouts
的宽度设置为0dp并将权重设置为1.现在两个子视图将占据父视图宽度的50%(我认为这是LinearLayout
否则这不起作用。)
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonHolidays"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/holidays"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/hagim" />
<TextView
android:id="@+id/EditTextHoliday"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="none"
android:onClick="chooseType"
android:background="@color/White"
android:textColor="@color/Black"
android:text="@string/holidays" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonPeople"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/people"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/people" />
<TextView
android:id="@+id/editTextPeople"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:inputType="none"
android:onClick="chooseType"
android:background="@color/White"
android:textColor="@color/Black"
android:text="@string/professions" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
对ImageButton的宽度进行硬编码可产生所需的效果。不像我想的那样优雅或灵活,但它可以在多个平台上运行,所以我想我可以忍受它。
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/chooser_bottom_margin"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonVegFruit"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:contentDescription="@string/vegetables"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/fruitveg" />
<TextView
android:id="@+id/EditTextVegFruit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/White"
android:gravity="center_horizontal"
android:inputType="none"
android:onClick="chooseType"
android:text="@string/VegFruit"
android:textColor="@color/Black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/chooser_bottom_margin"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButtonClothes"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_gravity="center"
android:contentDescription="@string/clothing"
android:gravity="center"
android:onClick="chooseType"
android:scaleType="fitCenter"
android:src="@drawable/clothes" />
<TextView
android:id="@+id/EditTextClothes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/White"
android:gravity="center_horizontal"
android:inputType="none"
android:onClick="chooseType"
android:text="@string/clothing"
android:textColor="@color/Black" />
</LinearLayout>
</LinearLayout>