这是我的MainActivity XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/testingView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context=".TestingActivity" >
这是.java文件:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testing_activity);
RelativeLayout viewOne = (RelativeLayout) findViewById(R.id.testingView);
RelativeLayout viewTwo = new RelativeLayout(this);
viewTwo.setId(5233);
viewTwo.setBackgroundColor(0xFF0000);
然后,我尝试添加此代码(以及许多其他和相同的,以不同的方式,使用不同的和固定的大小,但它们都没有工作):
viewTwo.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
最后:
viewOne.addView(viewTwo);
试图添加它,但没有用:
viewTwo.bringToFront();
我只是看到带有 Hello World!文字的白色背景。 任何解决方案?
答案 0 :(得分:2)
viewTwo.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));
试试这个。由于viewTwo没有任何孩子,你不会看到任何东西。尝试为viewTwo设置不同的backgroundColor
。
viewTwo.setBackgroundColor(Color.RED);
答案 1 :(得分:0)
RelativeView是容纳视图的容器,当然它也是View,你也可以添加嵌套视图。
当你对这样的事情做出正确的时候:
viewTwo.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
你告诉你的观点是它的孩子的宽度。由于您未向该视图添加任何子项,因此with将为0。
答案 2 :(得分:0)
使用RelativeLayout而不是LinearLayout
viewTwo.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT))
答案 3 :(得分:0)
试试这个 -
viewTwo.setBackgroundColor(getResources().getColor(Color.RED));
更新 -
为您的动态视图创建模板,例如relative layout-
在res / layout文件夹中创建一个xml - relative_view_template.xml并复制到代码下面。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ff0000"
/>
并在您的班级中使用此代码 -
RelativeLayout relativeLayout = (RelativeLayout)((Activity) context).getLayoutInflater().inflate(R.layout.relative_view_template, null);
这对我有用,请试试这个。