LinearLayout с layout_weights с детьми с разной высотой - PullRequest
0 голосов
/ 01 февраля 2012

Моя кнопка с изображением имеет высоту 40px, но моя галерея намного больше по высоте.Прямо сейчас мои кнопки изображений занимают все пространство, которое им предоставляется, и имеют ту же высоту, что и моя галерея.Можно ли сохранить кнопки в их первоначальном размере при сохранении горизонтального расположения?

<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 голосов
/ 01 февраля 2012
<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>
0 голосов
/ 01 февраля 2012

Вы применяете

android:layout_width="match_parent"
android:layout_height="match_parent"

к обеим кнопкам ImageButtons, чтобы они заполняли высоту, если вы просто хотите, чтобы кнопки 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>
0 голосов
/ 01 февраля 2012

Удалите вес макета = 3 в ImageButtons, это причина показать кнопку изображения больше, чем Галерея.

Я думаю, вы не знаете, как использовать свойство layout_weight, поэтому вы не знаете, как решить эту проблему.Сначала узнайте о layout_weight.

Если у вас есть какие-либо сомнения, не стесняйтесь спрашивать меня.

Используйте строки ниже как на кнопках изображений, так и в галерее, это будет хорошо.

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