我在XML文件中声明了一个View,我希望通过代码来定义它,但是当我建立它时,没有显示任何内容。你能救我吗?
这是我的XML文件:
[...]
<View
android:id="@+id/marco_container"
style="@style/wrapFull"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
[...]
我用这种方式定义它:
setContentView(R.layout.marco);
View view = (View) findViewById(R.id.marco_container);
view.inflate(getApplicationContext(), R.layout.prueba, null);
我试图通过这种方式宣布它:
view = View.inflate(getApplicationContext(), R.layout.prueba, null);
这是prueba.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:text="Prueba" style="@style/wrapContent"
android:layout_gravity="center"/>
</FrameLayout>
答案 0 :(得分:1)
这不是View视图。这是您的自定义视图,只需创建一个扩展FrameLayout的自定义视图,并在构造函数内部扩展您的视图。
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER...);
View view = inflater.inflate(getApplicationContext(), R.layout.prueba, this);
并在你的主要xml内放置:
<com.my.path.CustomView
android:id="@+id/marco_container"
style="@style/wrapFull"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
在你的班上:
setContentView(R.layout.marco);
CustomView view = (CustomView) findViewById(R.id.marco_container);
答案 1 :(得分:0)
你需要这样做:
View view2 = view.inflate(this, R.layout.prueba, null);
((ViewGroup)view).addView(view2);
当然view
必须是某种ViewGroup
(RelativeLayout
,LinearLayout
等。)
答案 2 :(得分:0)
setContentView(R.layout.marco);
LinearLayout li = (LinearLayout) findViewById(R.id.marco_container);
View view = getLayoutInflater().inflate(R.layout.prueba, li, false);
li.addView(view);