我遇到了以下问题,我想将屏幕拆分为2个部分,顶部导航栏,更好的动作也不是工具栏在这种情况下是一个选项,原因更复杂,设置导航栏为%也相当困难由于百分比值与不同设备(手机/平板电脑)上的绝对大小不同。
导航栏部分应该是100dp,我正在寻找一种方法来使用我的屏幕的其余部分作为RelativeLayout
的新100%,这样当我使用fill_parent
白色部分时如下所示将等于100%。
如果可能的话,一个axml解决方案是可以有效的,所以C#或Java基础上的所有东西都是一个选项而不是一个选项。
我试着做以下事情,但我相信它只是将大小正确地设置为完整的父对象,我无法弄清楚如何解决这个问题。
<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>
答案 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>