jus*_*inl 5 xml layout android
是否可以在onCreate()中加载我的main.xml布局文件,然后在应用程序中加载,切换到新的XML布局?我以后尝试在应用程序中放置setContentView(),但这似乎并没有实际设置新的View,因为我对新设置的xml布局文件中的对象的引用返回为null.我尝试使用LayoutInflater进行一些布局膨胀,但我没有运气(我可能做错了)...
那么有没有其他方法可以在运行时交换布局xml布局?谢谢!
SSZ*_*ero 13
您可以将布局放在一个xml文件中.你不想立即看到的那些,android:visibility="gone"在XML中设置,在运行时你会打电话给hiddenView.setVisibility(View.VISIBLE);.
您的XML看起来像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/layout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
<LinearLayout android:id="@+id/layout2"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
在运行时你可以这样做:
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
这基本上会创建布局交换的外观.
我相信如果你在两个布局之间共享对象,这也会有效.只需确保首先使用id android:id="@+id/view1"设置,然后设置此ID的所有后续设置android:id="@id/view1"(不使用+).
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/layout1"
android:layout_width="fill_parent">
<View android:id="@+id/view1"/>
</LinearLayout>
<LinearLayout android:id="@+id/layout2"
android:visibility="gone"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<View android:id="@id/view1"/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7258 次 |
| 最近记录: |