我有以下xml实现。但是,如下所示,高度和宽度是硬编码的,即使这些值适用于Nexus 10.但是它在Nexus 7上无法正常工作。
我需要知道有没有办法处理它像百分比?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mainView"
android:background="#0000FF">
<View
android:layout_width="220dp"
android:layout_height="wrap_content"
android:id="@+id/view1"
android:background="#000000"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true" />
<View
android:layout_width="wrap_content"
android:layout_height="360dp"
android:id="@+id/view2"
android:background="#00FF0000"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="44dp"
android:layout_below="@id/view2"
android:id="@+id/view3"
android:background="#000000"
android:layout_alignLeft="@id/view2"
android:layout_alignParentRight="true">
<View
android:layout_width="wrap_content"
android:layout_height="360dp"
android:layout_toRightOf="@id/view1"
android:id="@+id/view4"
android:background="#00FF0000"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout
这是布局设计
我不想将relativelayout转换为线性布局的原因,因为我在view2
和view 4
的顶部添加了一个透明视图来接收手势事件。
答案 0 :(得分:2)
将整个布局更改为线性布局。现在根据需要相应地增加重量。我没有增加重量。这只是一个示例代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<View
android:layout_width="220dp"
android:layout_height="wrap_content"
android:background="#000000" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="#ffffff" />
<View
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="#000000" />
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#bbbbbb" />
</LinearLayout>
答案 1 :(得分:1)
要指定百分比,您需要以编程方式执行或者您可以将其包装在LinearLayout中:
<LinearLayout
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
在上面的示例中,View
中所有LinearLayout
s的高度相同。这意味着如果LinearLayout的高度为300dp,则每个View
的高度为100dp。