LinearLayout width layout_weight,其子级具有不同的高度

时间:2012-02-01 04:55:50

标签: android android-linearlayout

我的图片按钮高度为40像素,但我的画廊高度要大很多。现在,我的图像按钮占据了它们给定的整个空间,并且与我的画廊的高度相同。是否仍然保持按钮的原始尺寸,同时保持这种水平布局?

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingTop="20dp" >

        <ImageButton
            android:id="@+id/left_arrow"
            android:layout_weight="3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/shared_arrow_left_button_selector"
            android:scaleType="fitCenter" />

        <Gallery
            android:id="@+id/gallery"
            android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:spacing="15dp" />

        <ImageButton
            android:id="@+id/right_arrow"
            android:layout_weight="3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/shared_arrow_right_button_selector"
            android:scaleType="fitCenter" />
    </LinearLayout>

3 个答案:

答案 0 :(得分:0)

在ImageButtons中删除布局权重= 3,这是显示图像按钮大于图库的原因。

我认为您不知道如何使用layout_weight属性,因此您不知道如何解决此问题。首先要了解layout_weight。

如果您有任何疑问,请随时问我。

在图像按钮和图库中使用以下线条,这将很不错。

android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"

答案 1 :(得分:0)

<ImageButton
        android:id="@+id/left_arrow"
        android:layout_weight="3"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/shared_arrow_left_button_selector"
        android:scaleType="centerinside" />
Remove Weight attribute, and set width and height of buttons to wrap_content
    <Gallery
        android:id="@+id/gallery"
        android:focusable="true"
    android:focusableInTouchMode="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:spacing="15dp" />

    <ImageButton
        android:id="@+id/right_arrow"
        android:layout_weight="3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/shared_arrow_right_button_selector"
        android:scaleType="centerinside" />
</LinearLayout>

答案 2 :(得分:0)

您正在申请

android:layout_width="match_parent"
android:layout_height="match_parent"
如果你只想让ImageButtons包装原始大小,只需将它们更改为wrap_content并删除layout_weight属性,它们就会填充高度。此外,当您将layout_weight="1"应用于图库时,只需更改android:layout_width="0dp",因为宽度将由layout_weight属性本身管理。你的最终布局应该是,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="horizontal"
    android:paddingTop="20dp" >

    <ImageButton
        android:id="@+id/left_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter" />

    <Gallery
        android:id="@+id/gallery"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:spacing="15dp" />

    <ImageButton
        android:id="@+id/right_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter" />

</LinearLayout>