0

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

 RelativeLayout layout = new RelativeLayout(this);

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

 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">

在添加文本视图之前,我尝试将其转换为 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);

仍然没有运气

4

3 回答 3

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 );

……但这很尴尬。我认为ViewRelativeLayout. 它仍然是全屏的,但不再是全屏了。

于 2013-08-25T18:37:46.577 回答
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 参考。

编辑文本: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)

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

于 2013-08-25T18:24:22.647 回答
0

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

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

事实上,我最近问过不久前创建一个透明背景的对话框,所以它可能对你有帮助。这是链接。据我了解,可以对活动采取非常相似的方法。

于 2013-08-25T19:27:24.363 回答