我有以下以编程方式编写的代码,
Display display = this.WindowManager.DefaultDisplay;
Point size = new Point();
int height = size.Y;
bViewLayout.Height = (int)(height * 0.5);
但是,我想知道如何在Xml中实现一半的屏幕,而不是硬编码如下?
<GridLayout
android:layout_columnSpan="1"
android:layout_gravity="fill"
android:layout_rowSpan="1"
android:layout_height="135"/>
编辑: 以下代码不起作用:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnCount="2"
android:rowCount="2">
<GridLayout
android:id="@+id/aView"
android:layout_columnSpan="1"
android:layout_gravity="fill"
android:layout_rowSpan="2"
android:layout_width="100"
android:layout_height="25"
android:text="1" />
<GridLayout
android:id="@+id/bView"
android:layout_columnSpan="1"
android:layout_gravity="fill"
android:layout_rowSpan="1"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="0.5"
android:text="2" />
<GridLayout
android:id="@+id/cView"
android:layout_columnSpan="1"
android:layout_gravity="fill"
android:layout_rowSpan="1"
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="0.5"
android:text="3" />
</GridLayout>
答案 0 :(得分:4)
那会(宽度):
<GridLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" />
这意味着&#34;宽度未定义,高度是,我说重量是50%&#34; (默认情况下为1.0中的0.5),因此Android会将该宽度扩展到设备屏幕宽度的50%。
相反,将高度值切换为0dp
,将宽度切换为某个值。我相信你现在得到了它;)
答案 1 :(得分:2)
试试这个,这是一个棘手的解决方案,但非常有效:
它包含一个relativeLayout,中间是假视图,上面是gridview!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black">
<View
android:id="@+id/fakeView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_centerVertical="true"/>
<GridLayout
android:layout_columnSpan="1"
android:layout_gravity="fill"
android:layout_rowSpan="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/fakeView"
android:background="@color/white"/>
</RelativeLayout>
答案 2 :(得分:1)
如果我是你,我的根布局将是一个垂直的LinearLayout,我会使用weightSum属性。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2"
android:gravity="center"
android:orientation="vertical" >
<Your_first_half_layout_type
android:layout_width="match_parent"
android:layout_height="0dp"
layout_weight="1"
/>
<Your_second_half_layout_type
android:layout_width="match_parent"
android:layout_height="0dp"
layout_weight="1" />
</LinearLayout>