繁体   English   中英

如何使RelativeLayout不能占据整个屏幕?

[英]How to make RelativeLayout not take up the whole screen?

目前,我有一个相对布局以编程方式定义

 RelativeLayout layout = new RelativeLayout(this);

然后我添加像这样的textviews和按钮

 layout.addView(myText, params);
 layout.addView(myBtn, param);

但是,这会使整个屏幕充满我的相对布局,我如何(以编程方式)仅设置一定数量的像素(dp)来占据屏幕? 我的目标是让屏幕的下半部分具有相对布局

有帮助吗?

编辑:这是我最终要实现的目标: http : //i.imgur.com/n1ckBN7.png

我认为这(以XML格式)可能对我有帮助

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="200dp">

在添加textviews之前,我曾尝试将其转换为Java:

 parameters_layout = new 
         RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 
     200);
 layout.setLayoutParams(parameters_layout);

编辑2我尝试添加:

    parameters_layout.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
    parameters_layout.addRule(RelativeLayout.ALIGN_BOTTOM, RelativeLayout.TRUE);
    layout.setGravity(Gravity.BOTTOM);
    layout.setLayoutParams(parameters_layout);

还是没有运气

查看RelativeLAyout的官方Android文档。

http://developer.android.com/reference/android/widget/RelativeLayout.html

尤其是,

setMinimumWidth(int)
setMinimumHeight(int)

例:

layout.setMinimumWidth(500);
layout.setMinimumHeight(100);

如果要设置TextView / EditText和Button的高度和宽度(例如您的示例)。

这是官方Android文档中的API参考。

EditText: http : //developer.android.com/reference/android/widget/EditText.html

setHeight(int)
setMaxHeight(int)
setMinHeight(int)
setMaxWidth(int)

按钮: http : //developer.android.com/reference/android/widget/Button.html

setHeight(int)
setMinWidth(int)

只需阅读官方文档,所有参考资料都在那里。 :)

您没有提供完整的代码示例,所以我假设您的new RelativeLayout是您活动的内容视图。

setContentView( layout );

这意味着您的父视图是框架布局,并且您需要创建一个FrameLayout.LayoutParams 该params类型不会给您太多选择,只有gravity 您可以尝试以下方法:

RelativeLayout layout = new RelativeLayout(this);
int halfScreenHeight = //calculate from DisplayMetrics
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(MATCH_PARENT, halfScreenHeight, Gravity.BOTTOM);
setContentView( layout, params );

...但是很尴尬。 我认为在RelativeLayout的上半部分插入一个空View更容易。 它仍将是全屏显示,但不再是全屏显示。

根据我在图像中看到的内容,您可以将所有内容放入覆盖所有内容的relativeLayout中,而底部视图则与底部对齐(为此使用align parent bottom)。

或者,您可以仅将底部(可以是您希望的任何布局)设置为在窗口本身内部具有“底部”的重力。

实际上,不久前我就问过要创建一个具有透明背景的对话框,因此它可能对您有所帮助。 这是链接 据我了解,可以对活动进行非常相似的处理。

暂无
暂无

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

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