android RelativeLayout以编程方式更改高度
Posted
技术标签:
【中文标题】android RelativeLayout以编程方式更改高度【英文标题】:android RelativeLayout change height programmatically 【发布时间】:2014-11-21 09:01:08 【问题描述】:我尝试以编程方式更改布局高度。我有两个按钮。在一个按钮中,我更改了布局位置,第二个按钮尝试接收我第一次的保存位置。
<RelativeLayout
android:id="@+id/popaplayout"
android:layout_
android:layout_ >
这是我的布局 在第一个按钮中我写了
RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout.LayoutParams.FILL_PARENT);
parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout);
scrollpopap.setLayoutParams(parms);
scrollpopap.setScrollingEnabled(true);
第二个按钮
RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, 300);
rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
scrollpopap.setLayoutParams(rel_btn);
scrollpopap.setScrollingEnabled(false);
在xml
文件中,我写了高度 200dp 并以编程方式写了 300,并且有不同的高度。如何以编程方式编写保存高度?
如果有人知道解决方案,请帮助我 谢谢
【问题讨论】:
【参考方案1】:先将200dp转成像素-
final float scale = getContext().getResources().getDisplayMetrics().density;
int pixels = (int) (200 * scale + 0.5f);
然后以编程方式设置,
RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, pixels);
rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
scrollpopap.setLayoutParams(rel_btn);
scrollpopap.setScrollingEnabled(false);
【讨论】:
如果我在RelativeLayout中有一个宽度为match_parent的孩子并从RelativeLayout修改宽度,如何更新孩子的宽度?【参考方案2】:像这样将 DP 转换为 PX。
final float scale = getContext().getResources().getDisplayMetrics().density;
int px = (int) (100 * scale + 0.5f); // replace 100 with your dimensions
设置一些相对布局的layout_gravity。并通过java代码更改高度和宽度。
RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId);
rl.getLayoutParams().height = px;
rl.getLayoutParams().width = px;
【讨论】:
【参考方案3】:如果你打算改变RelativeLayout
的高度,那么这个帮助。
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId);
relativeLayout.getLayoutParams().height = 100;
relativeLayout.getLayoutParams().width = 100;
【讨论】:
【参考方案4】:使用这个
RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id);
// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
params.height = 320;
params.width = 320;
【讨论】:
以上是关于android RelativeLayout以编程方式更改高度的主要内容,如果未能解决你的问题,请参考以下文章