简体   繁体   English

如何为活动根视图设置布局重力

[英]How to set layout gravity for activity root view

I get the root view (Which in my case happens to be RelativeLayout) using the below code: 我使用以下代码获取根视图(在我的情况下恰好是RelativeLayout):

final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
        .findViewById(android.R.id.content)).getChildAt(0);

Source: Get root view from current activity 来源: 从当前活动中获取根视图

Now I want to set the size and the layout gravity of the root view. 现在,我要设置根视图的大小和布局重力。 But I don't know the layout type of its parent 但我不知道其父级的布局类型

The below code works when the view I want to set it's layout params is inside a LinearLayout. 当我要设置其视图参数的视图位于LinearLayout内时,以下代码有效。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.TOP;

button.setLayoutParams(params);

Source: How to set layout_gravity programmatically? 来源: 如何以编程方式设置layout_gravity?

I believe you need DecorView.LayoutParams . 我相信您需要DecorView.LayoutParams

The root view is added to a DecorView, which is attached to the Activity's Window. 根视图将添加到DecorView,该DecorView附加到“活动”窗口。

PhoneWindow.java PhoneWindow.java


Since the DecorView in question isn't accessible to apps in general, you can use FrameLayout.LayoutParams . 由于一般来说应用程序无法访问有问题的DecorView,因此可以使用FrameLayout.LayoutParams

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM