我的项目文件有XML
,例如root xml
。在根xml
中,我定义了Relative layout
,如下所示
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root_view">
</RelativeLayout>
我的另一个xml
文件首先是one.xml
,另一个是two.xml
,如下所示
one.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:id="@+id/two_video_layout">
<TextView
android:id="@+id/two_video_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:singleLine="true"
android:text="Video Title" />
</RelativeLayout>
另一个布局是
two.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:id="@+id/two_video_layout">
<Imageview
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
如何在具有特定条件的one.xml
中动态添加two.xml
或root.xml
以及如何访问one.xml
文件的文本视图的引用
答案 0 :(得分:1)
您必须使用LayoutParams添加视图。
LinearLayout linearLayout = new LinearLayout(this);
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
relativeParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
parentView.addView(linearLayout, relativeParams);
要以编程方式相对定位您的商品,您必须为其分配ID。
TextView tv1 = new TextView(this);
tv1.setId(1);
答案 1 :(得分:0)
尝试这样的事情, 其中rootLayout用于root.xml
RelativeLayout two_video_layout=new RelativeLayout(this);
rootLayout.addView(two_video_layout);
答案 2 :(得分:0)
您可以像这样使用LayoutInflater:
LayoutInflater inflater=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.viewYou_want_to_inflate, null);
// to inflate one.xml call
View v = inflater.inflate(R.layout.one, null);
TextView textView=(TextView)v.findViewById(R.id.two_video_title); // to get textview object from one.xml
// to inflate two.xml call
View v = inflater.inflate(R.layout.two, null);
并在根视图中添加一个视图,调用addView
函数如下:
RelativeLayout root_layout=(RelativeLayout)findViewById(R.id.root_view);
layout.addView(v);