如何让RelativeLayout不占用整个屏幕?

时间:2013-08-25 18:19:37

标签: android android-layout

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

 RelativeLayout layout = new RelativeLayout(this);

然后我添加像这样的文本视图和按钮

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

然而,这使得整个屏幕充满了我的相对布局,我如何(以编程方式)设置只有一定数量的像素(dp)占用屏幕?我的目标是让屏幕的下半部分相对布局

Anyhelp?

编辑:这是我最终要实现的目标: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);

仍然没有运气

3 个答案:

答案 0 :(得分:0)

查看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)

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

答案 1 :(得分:0)

您没有提供完整的代码示例,因此我假设您的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 );

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

答案 2 :(得分:0)

根据我在图片中看到的内容,您可以将所有内容放在覆盖所有内容的relativeLayout中,而将底部视图与底部对齐(使用对齐父内部)。

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

事实上,我最近问过不久前创建一个透明背景的对话框,所以它可能对你有所帮助。 here's the link。根据我的理解,可以对活动采取非常类似的方法。