Android — исправить положение значка

#android #android-layout

#Android #android-макет

Вопрос:

У меня есть два RelativeLayouts , каждый из которых содержит ImageView и TextView . При нажатии на a TextView размер TextView увеличивается, а размер другого Textview уменьшается. Однако положение ImageView также меняется.Я хочу, чтобы изображение было исправлено независимо от размера textview . Какие изменения следует внести?

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@ id/bb_bottom_bar_outer_container"
             android:layout_width="match_parent"
             android:layout_height="60dp"
             android:background="@drawable/float_common"
             android:clickable="true">

    <LinearLayout
        android:id="@ id/btn_updatenow"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/background_grey"
        android:orientation="horizontal"
        android:weightSum="3">

        <RelativeLayout
            android:id="@ id/float_layout_home"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical"
            android:paddingTop="2dp">

            <ImageView
                android:id="@ id/float_image_home"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="@dimen/margin_6"
                android:background="@drawable/float_home_onclick"
            />

            <TextView
                android:id="@ id/float_text_home"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:paddingBottom="@dimen/margin_10"
                android:text="@string/home"
                android:textColor="@color/text_mid_grey"
            />
        </RelativeLayout>

        <RelativeLayout
            android:id="@ id/float_layout_offers"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingTop="2dp">

            <ImageView
                android:id="@ id/float_offers"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="@dimen/margin_6"
            />

            <TextView
                android:id="@ id/float_text_offers"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:paddingBottom="@dimen/margin_10"
                android:text="@string/offers"
                android:textColor="@color/text_mid_grey"
            />
        </RelativeLayout>
    </LinearLayout>

</FrameLayout>
  

Комментарии:

1. Попробуйте, установив 2 RelativeLayout s android:layout_width как 0dp

2. @FebiMathew Его рабочее спасибо, не могли бы вы, пожалуйста, объяснить логику?

3. Добавлен ответ. Пожалуйста, проверьте.

Ответ №1:

Попробуйте, установив 2 RelativeLayout s android:layout_width как 0dp.

Когда Linearlayout содержит много представлений внутри и устанавливает layout_weight как 1 layout_height или layout_width = 0dp используется, чтобы занять равное пространство для обоих представлений.