目前,我有一个以编程方式定义的相对布局
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);
仍然没有运气
答案 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。根据我的理解,可以对活动采取非常类似的方法。