Android布局动态问题
尝试将textView和按钮动态添加到LinearLayout中,然后将此布局添加到setContentView使用的主布局中 所以是这样的 文本视图 B按钮 Ltb-包含T和B的布局 Lm-包含Ltb的主布局 然后使用此.setContentView(Lm)显示结果 角色: T一定在左边。 B必须位于布局内屏幕的右侧 上面的所有元素都是动态声明的,不使用布局xml 实际结果: 显示良好。但是当我输入比屏幕宽度长的文本时,按钮被推到屏幕外,消失了 问题,是不是我的动态布局出了问题 代码如下:Android布局动态问题,android,android-layout,Android,Android Layout,尝试将textView和按钮动态添加到LinearLayout中,然后将此布局添加到setContentView使用的主布局中 所以是这样的 文本视图 B按钮 Ltb-包含T和B的布局 Lm-包含Ltb的主布局 然后使用此.setContentView(Lm)显示结果 角色: T一定在左边。 B必须位于布局内屏幕的右侧 上面的所有元素都是动态声明的,不使用布局xml 实际结果: 显示良好。但是当我输入比屏幕宽度长的文本时,按钮被推到屏幕外,消失了 问题,是不是我的动态布局出了问题 代码如下: p
public SearchBar(Context c){
et=new EditText(c);
bt=new Button(c);
et.setHint("added et");
bt.setText("added btn");
ll=new LinearLayout(c);
setLinearLayout();
et.setLayoutParams(flowLeft());
bt.setLayoutParams(flowRight());
ll.addView(et);
ll.addView(bt);
}
private RelativeLayout.LayoutParams flowRight(){
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
//params.weight = 1.0f;
//params.gravity=Gravity.RIGHT;
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
return params;
}
private RelativeLayout.LayoutParams flowLeft(){
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
//params.weight = 1.0f;
//params.gravity=Gravity.RIGHT;
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
return params;
}
private void setLinearLayout(){
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setLayoutParams(params);
}
像这样做。这可能对你有帮助
Ltb.setWeightSum(100);
Ltb.setOrientation(LinearLayout.HORIZONTAL);
T.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
B.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
像这样做。这可能对你有帮助
Ltb.setWeightSum(100);
Ltb.setOrientation(LinearLayout.HORIZONTAL);
T.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
B.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
像这样做。这可能对你有帮助
Ltb.setWeightSum(100);
Ltb.setOrientation(LinearLayout.HORIZONTAL);
T.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
B.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
像这样做。这可能对你有帮助
Ltb.setWeightSum(100);
Ltb.setOrientation(LinearLayout.HORIZONTAL);
T.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
B.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.MATCH_PARENT,50));
非常有用。谢谢@haresh,非常有帮助。谢谢@haresh,非常有帮助。谢谢@haresh,非常有帮助。谢谢@Haresh