在PercentRelativeLayout中使用dp width

时间:2016-07-07 08:05:44

标签: android density-independent-pixel android-percentrelativelayout

当我尝试添加没有" widthPercent"的视图时或" heightPercent"在PercentRelativeLayout中,视图无法显示。

我想要这个的原因是在PercentRelativeLayout的2个元素之间添加一个宽度为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"/>

     <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>

如果我设置&#34; layout_widthPercent&#34;它会在我的分频器上显示为1%。但我希望它只需要1dp。他们是实现这一目标的一种方式吗?

感谢&#39; s!

1 个答案:

答案 0 :(得分:0)

我找到了实现目标的一种方法,但我并不喜欢它(不是很干净),所以我在这里发布,如果没有人给我任何更好的解决方案,我会将其作为答案添加。

我所做的是添加一个widthLayout,其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>

如果您有任何更好的想法,请告诉我。