Android 如何让RelativeLayout在添加更多布局后相应地更改高度';谁的父母?
有人能帮我布置一下吗?我很难让它以我想要的方式显示 我有两个亲戚在一条直线上。RelativeLayout 1用于容纳片段,RelativeLayout 2包含“主”布局,在没有片段时应填充屏幕,但在添加片段时调整大小 我动态创建布局,如下所示:Android 如何让RelativeLayout在添加更多布局后相应地更改高度';谁的父母?,android,android-layout,android-linearlayout,android-relativelayout,Android,Android Layout,Android Linearlayout,Android Relativelayout,有人能帮我布置一下吗?我很难让它以我想要的方式显示 我有两个亲戚在一条直线上。RelativeLayout 1用于容纳片段,RelativeLayout 2包含“主”布局,在没有片段时应填充屏幕,但在添加片段时调整大小 我动态创建布局,如下所示: LinearLayout mainLayout = new LinearLayout(this); mainLayout.setLayoutDirection(LinearLayout.VERTICAL); unityPlay
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setLayoutDirection(LinearLayout.VERTICAL);
unityPlayerLayout = new RelativeLayout(this);
youtubeLayout = new RelativeLayout(this);
LinearLayout.LayoutParams mainParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
mainLayout.setLayoutParams(mainParams);
RelativeLayout.LayoutParams youtubeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,600);
RelativeLayout.LayoutParams unityPlayerLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.MATCH_PARENT);
unityPlayerLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
mainLayout.addView(youtubeLayout,0,youtubeLayoutParams);
mainLayout.addView(unityPlayerLayout);
unityPlayerLayout.addView(playerView,0,unityPlayerLayoutParams);
添加片段后,unityPlayerLayout不会调整大小并与底部对齐。它被推到右边,我可以看到几个像素,这很奇怪,因为youtubeLayout和mainLayout应该与屏幕匹配
因此,总结一下:在向youtubeLayout添加一个片段时,我需要unityPlayerLayout调整其高度并下降到底部,但实际上unityPlayerLayout会被推到右侧,而不会调整其高度
有人知道吗?非常感谢 您需要为主
线性布局设置布局方向
,而不是方向
改变
mainLayout.setLayoutDirection(LinearLayout.VERTICAL);
到
谢谢是的,归结起来就是定向。
mainLayout.setOrientation(LinearLayout.VERTICAL);
// try this way,hope this will help you...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout mainLayout = new LinearLayout(this);
RelativeLayout unityPlayerLayout = new RelativeLayout(this);
unityPlayerLayout.setBackgroundColor(getResources().getColor(android.R.color.holo_red_dark));
RelativeLayout youtubeLayout = new RelativeLayout(this);
youtubeLayout.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
mainLayout.setOrientation(LinearLayout.VERTICAL);
mainLayout.addView(youtubeLayout,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,600));
mainLayout.addView(unityPlayerLayout,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,0,1f));
setContentView(mainLayout,new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));
}