假设我有10个布局不.java
文件。我想使用按钮调用所有布局。是否有可能只有一个MainActivity
.java
文件意味着我们可以使用多个setContentView
?是否可以调用使用一个主要活动多个XML布局,而无需创建新的活动
回答
你不能提供一个以上的布局的任何活动,但如果你想使用一个活动的不同布局文件比你可以使用标签包括所有的布局文件到一个单一的布局文件,并在你的活动中使用它们。
会更好地利用碎片,而不是 –
的确是这样,你可以使用片段显示在活动不同的看法,这是核心片段的概念,但如果你想在你的单身mainActivity所有视图(不同的布局视图)的东西。 如果您的要求没有同时显示所有视图,则可以使用该片段。它取决于UI使用片段的要求或者在xml中包含布局。 – Mahavir
我仍然不会说使用这种模式。想象一下,如果在一个活动中有10个布局,则需要编写多少行findviewby –
在主布局包括您所有的布局,使visibility GONE
对于所有其他的布局。基于按钮点击,您可以根据布局ID显示任何特定布局。
示例XML是如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<!-- main layout for first time loading activity-->
<LinearLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<!-- Display layout based on button click-->
<LinearLayout
android:visibility="gone"
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<!-- Display layout based on button click-->
<LinearLayout
android:visibility="gone"
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
<!-- Display layout based on button click-->
<LinearLayout
android:visibility="gone"
android:id="@+id/layout4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
内存消耗将是一个噩梦,这是一种理想的解决方案,尽管它是一种没有额外的java文件而缺少布局点的内存消耗 –
@ Moshe Edri是的我同意内存消耗,但是我给出了基于他的需求的解决方案,因为他不需要多一个java文件。 – Gaurav
<include layout="@layout/titlebar"/>
标题栏是不同的布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/titlebar_bg"
tools:showIn="@layout/activity_main" >
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gafricalogo" />
包括在主要布局这样的..
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/app_bg"
android:gravity="center_horizontal">
<include layout="@layout/titlebar"/>
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:padding="10dp" /></LinearLayout>
您可以使用Fragments进行此操作。
简单,在主活动布局中声明了一个FrameLayout里。
并为您希望每个布局创建碎片。现在
,您可以切换使用段管理布局。
请参阅此了解更多详情:Here
希望它帮助!
不,你不能单活动使用多个setContentView()
。
如果你只是想其它XML布局添加到另一个。你可以使用<include>
标签。
实施例:
layout_one.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is layout one"/>
</LinearLayout>
layout_two.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is layout two"/>
</LinearLayout>
activity_main.xml中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<include layout="@layout/layout_one">/>
<include layout="@layout/layout_two">/>
</LinearLayout>
- 1. 有一个主要活动,调用另一个活动
- 2. 创建一个可以被多个活动使用的组件
- 3. TabWidget活动处理 - 是否每次创建一个新活动?
- 4. 是否可以创建多个主布局 - 布局Laravel?
- 5. 新活动是否需要内容和活动xml?
- 6. 我是否需要为每个游戏级别创建一个新的活动?
- 7. 多个布局,一个活动
- 8. Android:是否可以引用第二个活动中的活动?
- 9. 使用新的而不是意图在另一个内部创建一个活动是否可行?
- 10. 我可以在活动中使用xml文件和代码创建布局吗?
- 11. 将布局从一个活动传递到另一个活动
- 12. 是否可以使用One UI Handler进行多个活动?
- 13. 要创建多个活动吗?
- 14. 如何使另一个活动作为主要活动(启动)
- 15. 为一个活动创建多个布局文件还是以编程方式更改布局会更好吗?
- 16. 如何在android的单个活动中使用多个布局?
- 17. 我可以使用当前活动重新启动上一个活动吗?
- 18. 我需要在主要活动中使用“singleInstance”,并且我还需要将另一个活动带到顶部
- 19. 是否需要在一个.xml文件中使用多个布局(线性布局,相对布局)
- 20. 重新使用活动,无需重新创建
- 21. 在单个活动中使用多个布局
- 22. 调用同一个活动的多个实例和多个活动
- 23. 是否可以替换使用布局XML创建的片段?
- 24. 可以从一个主要活动调用自己从AsyncTask的postExecute方法
- 25. 检查当前活动是否需要活动(同一父母)
- 26. setResult调用相同的活动,而不是调用父活动
- 27. Android:创建一个新班级?或者我可以使用当前的活动?
- 28. 重新使用主要活动
- 29. 是否可以启动一个活动作为一个新进程
- 30. 是否可以使用Intent更新另一个活动中的值?
使用**'Fragments' ** –
你可以做到这一点通过'FRAGMENTS' –