Используйте ширину dp в PercentRelativeLayout

Когда я пытаюсь добавить представление без "widthPercent" или "heightPercent" в PercentRelativeLayout, представление не отображается.

Причина, по которой я хочу это, состоит в том, чтобы добавить разделитель между 2 элементами моего PercentRelativeLayout с шириной 1 дп.

Макет, который я использую, таков:

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout android:id="@+id/fragment_list_container"
        app:layout_widthPercent="30%"
        android:layout_height="match_parent"

        android:layout_toLeftOf="@+id/divider"
        android:layout_toStartOf="@+id/divider"/>

     <View android:id="@id/divider"
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:background="@drawable/detailed_list_divider"

        android:layout_toLeftOf="@+id/fragment_details_container"
        android:layout_toStartOf="@+id/fragment_details_container"/>

     <FrameLayout android:id="@id/fragment_details_container"
         app:layout_widthPercent="70%"
         android:layout_height="match_parent"

         android:layout_alignParentRight="true"
         android:layout_alignParentEnd="true"

         android:paddingBottom="@dimen/base_activity_padding"
         android:paddingRight="@dimen/base_activity_padding"
         android:paddingLeft="@dimen/base_activity_padding" />

</android.support.percent.PercentRelativeLayout>

И если я установлю "layout_widthPercent" на 1% на моем разделителе, он появится. Но я хочу, чтобы он занимал только 1dp. Является ли их способ достичь этого?

Спасибо!

1 ответ

Решение

Я нашел один способ достичь своей цели, но он мне не очень нравится (не очень чистый), поэтому я публикую его здесь, и если никто не даст мне лучшего решения, я добавлю его в качестве ответа.

Что я сделал, так это добавил RelativeLayout с widthPercent 1%, который содержит мое представление 1dp. Как это:

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout android:id="@+id/fragment_list_container"
        app:layout_widthPercent="30%"
        android:layout_height="match_parent"

        android:layout_toLeftOf="@+id/divider"
        android:layout_toStartOf="@+id/divider"/>

    <RelativeLayout android:id="@id/divider"
        app:layout_widthPercent="1%"
        android:layout_height="match_parent"

        android:layout_toLeftOf="@+id/fragment_details_container"
        android:layout_toStartOf="@+id/fragment_details_container">

        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@drawable/detailed_list_divider" />

     </RelativeLayout>

     <FrameLayout android:id="@id/fragment_details_container"
         app:layout_widthPercent="70%"
         android:layout_height="match_parent"

         android:layout_alignParentRight="true"
         android:layout_alignParentEnd="true"

         android:paddingBottom="@dimen/base_activity_padding"
         android:paddingRight="@dimen/base_activity_padding"
         android:paddingLeft="@dimen/base_activity_padding" />

</android.support.percent.PercentRelativeLayout>

Дайте мне знать, если у вас есть идея получше.

Другие вопросы по тегам