引用第三方layout中的布局
LinearLayout rightContentView = (LinearLayout) findViewById(R.id.lyt_chat_content);
View child = LayoutInflater.from(this).inflate(R.layout.qa_text, null);// 由Layout的Id获得对应的View
rightContentView .removeAllViews(); // 清除View里面的所有View
LayoutParams layoutParams = new LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
rightContentView.addView(child, layoutParams);
这段代码实现了将rightContentView里面的子View全部清空,然后替换成 qa_text 这个Layout 布局。
这段代码用于实现Layout里面子layout的动态切换。
android 动态布局
一个在LinearLayout下的控件生成方法
(若是在RelationLayout下将LinearLayout.LayoutParams改为RelationLayout.LayoutParams)
/** * 创建一个textView,参数为文本框内容 */ private void creatText(String str) { TextView textView = new TextView(this); textView.setPadding(10, 10, 10, 10); textView.setText(str); params=new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); params.setMargins(30, 10, 30, 0); layout.addView(textView,params); } /** * 创建一个iamgeview,参数为图片名 R.drawable.image */ private void imageView(int drawable){ ImageView image = new ImageView(this); image.setImageResource(drawable); params=new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,600); params.setMargins(30, 20, 30, 20); layout.addView(image,params); }
第三方扩展,获得父级布局元素
FrameLayout view = (FrameLayout )getWindow().getDecorView();