这里的问题我在这两种情况下得不到相同的输出视图结果,我想修复案例1以获得与案例2相同的输出结果:
案例1的代码和输出:
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
text_view.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="#000000"
android:text="1"
android:textSize="20sp"
android:background="#AAAAAA"
android:gravity="center"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp"
/>
Run Code Online (Sandbox Code Playgroud)
LayoutTestActivity.java中的onCreate方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout lt = (LinearLayout) getLayoutInflater().inflate(R.layout.main, null);
TextView tv = (TextView) getLayoutInflater().inflate(R.layout.text_view, null);
lt.addView(tv);
setContentView(lt);
}
Run Code Online (Sandbox Code Playgroud)
输出视图(不正确)

案例2的代码和输出:
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:textColor="#000000"
android:text="1"
android:textSize="20sp"
android:background="#AAAAAA"
android:gravity="center"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginTop="2dp"
android:layout_marginRight="2dp"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
LayoutTestActivity.java中的onCreate方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)
输出视图(正确)

kas*_*rch 14
我不确定它是否有任何区别 - 但我的建议是这样的:
为您提供android:id="@+id/linearLayout"-tag标签.LinearLayoutmain.xml
然后这样做:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout lt = (LinearLayout) findViewById( R.id.linearLayout );
TextView tv = (TextView) getLayoutInflater().inflate(R.layout.text_view, null);
lt.addView(tv);
}
Run Code Online (Sandbox Code Playgroud)
您可能还想测试提供null或者LinearLayout lt作为第二个参数在充气时是否存在差异,TextView例如:
TextView tv = (TextView) getLayoutInflater().inflate(R.layout.text_view, lt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27259 次 |
| 最近记录: |