如何使视图与屏幕大小具有相同的高度,是否可以仅使用xml实现此目的?或者如果必须使用脚本,请告诉我如何
感谢。
很抱歉不清楚,谢谢你的回复
但我认为,match_parent和fill_parent属性不可靠,因为当我将视图放在一个容器中或更改视图容器层次结构时,它将无法工作。
Here我的完整xml布局。
我想用设备屏幕制作高度sam的元素是相对布局中的最后一个列表视图
答案 0 :(得分:3)
不,您无法仅在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));
答案 1 :(得分:0)
我们可以动态获取设备屏幕高度并设置为视图高度
答案 2 :(得分:0)
Display screenDisplay = getActivity().getWindowManager().getDefaultDisplay();
LayoutHeight = screenDisplay.getHeight();
LinearLayout.LayoutParams listLayoutParams = new LinearLayout.LayoutParams(
LayoutHeight, LinearLayout.LayoutParams.WRAP_CONTENT);
view.setLayoutParams(listLayoutParams);
答案 3 :(得分:0)
使用
android:layout_height = "match_parent"
而不是
android:layout_height = "wrap_content"
答案 4 :(得分:0)
这可以从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"
,否则无法使用{{1}}。一位谷歌工程师之前曾说过。从here