分屏百分比和dp

时间:2016-08-11 12:47:28

标签: android android-layout

我遇到了以下问题,我想将屏幕拆分为2个部分,顶部导航栏,更好的动作也不是工具栏在这种情况下是一个选项,原因更复杂,设置导航栏为%也相当困难由于百分比值与不同设备(手机/平板电脑)上的绝对大小不同。

导航栏部分应该是100dp,我正在寻找一种方法来使用我的屏幕的其余部分作为RelativeLayout的新100%,这样当我使用fill_parent白色部分时如下所示将等于100%。

如果可能的话,一个axml解决方案是可以有效的,所以C#或Java基础上的所有东西都是一个选项而不是一个选项。

Example

我试着做以下事情,但我相信它只是将大小正确地设置为完整的父对象,我无法弄清楚如何解决这个问题。

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f0f0f0" >

<LinearLayout android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:background="#ffffff">    
<!--Some Content-->  
</LinearLayout>
<RelativeLayout
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">    
   <android.support.percent.PercentRelativeLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        app:layout_widthPercent="100%"
        app:layout_heightPercent="100%"
        android:background="#ffffff">
   <!--Some Content-->  
 </RelativeLayout>
 </RelativeLayout>

2 个答案:

答案 0 :(得分:1)

您的混淆是在PercentRelativeLayout本身使用百分比值的结果:您可能只在其子项上使用这些值。在下面的示例中,您仍然拥有一个100dp工具栏和一个RelativeLayout,它位于其正下方,同时占用所有可用空间。此布局的所有子项将相对于此PercentRelativeLayout进行测量,而不是整个屏幕。

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f0f0f0" >

    <LinearLayout 
                android:id="@+id/toolBarLayout"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="#ffffff">    
    <!--Some Content-->  
    </LinearLayout>

    <android.support.percent.PercentRelativeLayout
            android:layout_below="@id/toolBarLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#ffffff">

            <!-- all the content here may be measured relatively to
            a parent PercentRelativeLayout -->

            <ImageView
                    android:layout_width="match_parent"
                    app:layout_heightPercent="50%"/>

    </android.support.percent.PercentRelativeLayout>

 </RelativeLayout>

答案 1 :(得分:0)

如下图所示,您可以拆分屏幕。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:orientation="vertical"
    android:id="@+id/layoutfifth">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Text 1"
                android:textColor="#000000"
                android:textSize="13sp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Text 2"
                android:textColor="#000000"
                android:textSize="13sp"
                android:textStyle="bold" />


        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:layout_weight="1"
            android:orientation="vertical">



             <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Text 3"
                android:textColor="#000000"
                android:textSize="13sp"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="Text 4"
                android:textColor="#000000"
                android:textSize="13sp"
                android:textStyle="bold" />



        </LinearLayout>


    </LinearLayout>

</LinearLayout>