Как настроить сумму веса для горизонтального разрыва между относительными - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть один Framelayout внутри, у меня есть Linealayout, у которого weightSum 5.1 внутри, у нас есть 5 макетов. Я хочу настроить горизонтальный зазор, основываясь на некотором соотношении (27: 51: 48: 48: 48: 24) слева направо, такчто это должно, но это не исправление.как это исправить?

я пробовал с layout_weight 1,.9,.9,.8,1, но он не фиксирует это соотношение, а пользовательский интерфейс не фиксирует мой коэффициент горизонтального разрыва.

<?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/white"
        android:orientation="horizontal"
        android:weightSum="5.1">

        <RelativeLayout
            android:id="@+id/float_layout_home"
            android:layout_width="@dimen/dp0"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="?attr/selectableItemBackground"
            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__new_click" />

            <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:layout_marginBottom="@dimen/padding_7"
                android:letterSpacing="-0.05"
                android:text="@string/home"
                android:textColor="@color/text_mid_grey" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/float_layout_collect"
            android:layout_width="@dimen/dp0"
            android:layout_height="match_parent"
            android:layout_weight=".9"
            android:background="?attr/selectableItemBackground"
            android:orientation="vertical"
            android:paddingTop="2dp">

            <ImageView
                android:id="@+id/float_image_collect"
                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_collect_new_click" />

            <TextView
                android:id="@+id/float_text_collect"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="@dimen/padding_7"
                android:letterSpacing="-0.05"

                android:text="@string/collect_tab_title"
                android:textColor="@color/text_mid_grey" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/float_layout_offers"
            android:layout_width="@dimen/dp0"
            android:layout_height="match_parent"
            android:layout_weight=".9"
            android:background="?attr/selectableItemBackground"
            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"
                android:background="@drawable/float_offercoupons_new_click" />

            <TextView
                android:id="@+id/txt_badge"
                style="@style/Typeface.Footnote.White"
                android:layout_width="18dp"
                android:layout_height="18dp"
                android:layout_gravity="top|right"
                android:layout_marginLeft="-5dp"
                android:layout_marginTop="3dp"
                android:layout_toRightOf="@+id/float_offers"
                android:background="@drawable/badge_background"
                android:gravity="center"
                android:visibility="gone" />

            <TextView
                android:id="@+id/float_text_offers"
                style="@style/Typeface.Small.TextMidGrey"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="@dimen/padding_7"
                android:gravity="center"
                android:letterSpacing="-0.05"
                 />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/float_layout_voucher"
            android:layout_width="@dimen/dp0"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:background="?attr/selectableItemBackground"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingTop="2dp"
            android:visibility="visible">

            <ImageView
                android:id="@+id/float_voucher"
                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_myimage_new_click" />

            <TextView
                android:id="@+id/float_text_voucher"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="@dimen/padding_7"
                android:letterSpacing="-0.05"
                android:text="@string/vouchers"
                android:textColor="@color/text_mid_grey" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/float_layout_boost"
            android:layout_width="@dimen/dp0"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="?attr/selectableItemBackground"
            android:gravity="center"
            android:orientation="vertical"
            android:paddingTop="2dp"
            android:visibility="visible">

            <ImageView
                android:id="@+id/float_boost"
                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_image2_new_click" />

            <TextView
                android:id="@+id/float_text_boost"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="@dimen/padding_7"
                android:letterSpacing="-0.05"
                android:text="@string/boost"
                android:textColor="@color/text_mid_grey" />
        </RelativeLayout>

    </LinearLayout>

</FrameLayout>

Я хочу сохранить горизонтальное соотношение, чтобыМой пользовательский интерфейс должен выглядеть как на экране ниже

enter image description here

1 Ответ

0 голосов
/ 17 апреля 2019

У вас есть проблема с вашим весом, но вы столкнетесь с другой проблемой, вы скажете, что ваш относительный макет принимает вес за ширину, но внутри вы помещаете содержимое переноса на ваш элемент.

Это пример, если вашобщая ширина равна 1000 dp, и вы помещаете вес на элемент внутри вашего контейнера, скажем, ширина вашего элемента равна 100 dp с вычисленным весом, но ваше изображение занимает 120 dp с wrap_content, вы видели проблемы?

ПозвольтеЯ покажу вам это маленькое решение, которое я написал

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="246">

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="27" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text1" />
    </LinearLayout>

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="51" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text2" />
    </LinearLayout>

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="48" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text3" />
    </LinearLayout>

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="48" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text4" />
    </LinearLayout>

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="48" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="text5" />
    </LinearLayout>

    <Space
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="24" />
</LinearLayout>

В этом коде вес находится только на пространстве между элементами, точно так же, как на вашем чертеже каждый элемент между пробелами может обернуть его содержимое

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...