在Android中如何使视图具有与其屏幕尺寸相同的高度,是否可以仅使用xml来实现这一点?或者如果它必须使用脚本,请告诉我如何
谢谢。
抱歉不清楚,感谢您的回复
但我认为,match_parent 和 fill_parent 属性不可靠,因为当我将视图放在一个容器中或更改视图容器层次结构时,它不起作用。
这是我完整的 xml 布局。
我想用设备屏幕制作高度的元素是相对布局中的最后一个列表视图
在Android中如何使视图具有与其屏幕尺寸相同的高度,是否可以仅使用xml来实现这一点?或者如果它必须使用脚本,请告诉我如何
谢谢。
抱歉不清楚,感谢您的回复
但我认为,match_parent 和 fill_parent 属性不可靠,因为当我将视图放在一个容器中或更改视图容器层次结构时,它不起作用。
这是我完整的 xml 布局。
我想用设备屏幕制作高度的元素是相对布局中的最后一个列表视图
不,您不能仅在 XML 中实现这一点。
由于 Android 支持多种屏幕尺寸,因此在运行时您需要检查每种设备尺寸。每个设备的高度可以这样计算:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
使用上面的代码,您将获得屏幕的高度,您需要在运行时将dp中的此高度设置为您的视图。
在您的活动中执行此操作:
// get view you want to resize
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main);
// get layout parameters for that view
ViewGroup.LayoutParams params = mainLayout.getLayoutParams();
// change height of the params e.g. 480dp
params.height = 480;
// initialize new parameters for my element
mainLayout.setLayoutParams(new LinearLayout.LayoutParams(params));
这可以从xml layout
. 为此,请先设置父布局的高度和宽度fill_parent or match_parent
,然后设置每个子视图的宽度fill_parent or match_parent.
。不要将任何padding or margin
设置为父布局。希望它会奏效。这里我给你举个例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_swap"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Left or Right" />
<SurfaceView
android:id="@+id/my_surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
注意:如果使用ScrollView
,则必须设置,fillViewport="true"
否则将不起作用。一位谷歌工程师之前说过。从这里检查
Display screenDisplay = getActivity().getWindowManager().getDefaultDisplay();
LayoutHeight = screenDisplay.getHeight();
LinearLayout.LayoutParams listLayoutParams = new LinearLayout.LayoutParams(
LayoutHeight, LinearLayout.LayoutParams.WRAP_CONTENT);
view.setLayoutParams(listLayoutParams);