如上图所示,类视图在MainActivity中声明,因此它没有XML文件。我想在该自定义视图上添加一个按钮并对其进行操作。
如果类View在不扩展视图的java类中,我如何在xml中显示自定义视图?
答案 0 :(得分:1)
我认为你不能在视图中设置任何其他视图。 check description,我认为只有ViewGroup和LinearLayout
,RelativeLayout
等扩展ViewGroup
的布局只能使用addView(View view)
添加其他视图,
示例如下
您可以创建一个xml布局文件并将自定义视图放入其中。
示例包含自定义视图的xml文件
<?xml version="1.0" encoding="utf-8"?>
<com.example.package.MyView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
java代码然后在视图中对其进行充气。
// Inflate your xml view using layout inflater.
LayoutInflater inflater = getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View myView = (MyView) inflater.inflate(R.layout.example, null);
// now create a container class or map any of it from main_activity.xml layout.
LinearLayout linear = new LinearLayout(this);
/* LinearLayout linear = (LinearLayout) findViewById(R.layout.myLayout); */
// if you have created it programatically, set its width and height as following
linear.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, // width
ViewGroup.LayoutParams.MATCH_PARENT)); // height
// else mention it in layout xml file.
linear.removeAllViews(); // clear layout before setting new one.
linear.addView(myView); // set custom view inside layout.
现在你可以分配操作你的myView了。如果你还想添加按钮。在xml文件中创建按钮并以编程方式膨胀或创建,并将其添加到linear.addView(View view);
答案 1 :(得分:0)
在XML中创建自定义布局,为其指定视图。然后,您可以将视图添加到其他布局。有关创建自定义视图的详细信息,请查看this tutorial