[英]two different layouts for one activity
是否可以为同一活动中的不同案例设置两种不同的布局,或者我是否必须使用intent
来调用具有不同布局的另一个activity
是的可能。 您可以为单个活动使用尽可能多的布局,但显然不能同时使用。 您可以使用以下内容:
if (Case_A)
setContentView(R.layout.layout1);
else if (Case_B)
setContentView(R.layout.layout2);
等等...
是的,这也适用于开关盒
我已经尝试过这段代码....
switch (condition) {
case 1:
setContentView(R.layout.layout1);
break;
case 2:
setContentView(R.layout.layout2);
break;
case 3:
setContentView(R.layout.layout3);
break;
default:
setContentView(R.layout.main);
break;
}
我建议使用Fragments
如果您对碎片不满意,可以解释更多以寻找其他解决方案将会很有帮助
编辑
使用android支持库来支持较低的OS版本
EDIT2
如果你想使用两个xml你可以将两个xml合并为一个并使用它
<include layout="@layout/YOURXMLNAME1" />
<include layout="@layout/YOURXMLNAME2" />
在许多情况下再次使用布局时,这也很有用
你可以参考这个链接
这是ViewFlipper的最佳解决方案。
ViewFlipper是一个简单的ViewAnimator,它将在两个或多个已添加到其中的视图之间进行动画处理。 一次只能展示一个孩子。 如果需要,可以定期在每个孩子之间自动翻转。 这是viewflipper的一个很好的例子。
你也可以看看这个 。
编辑: - 一个StackoverFlow为您解答
有很多方法可以解决这个问题。 其他答案包括至少两种方法 - 根据案例使用setContentView并使用片段。 还有一个我想谈的话。 比如说,你包括两个布局
<include
android:id = "@+id/layout1"
layout = .../>
<include
android:id = "@+id/layout2"
layout = ...
android:visibility = "gone"/>
在您的Java代码中,您可以根据用例隐藏或显示您的布局。 例如,设置内容视图以显示上面的布局显示layout1。 当用户单击下一个按钮时,您可以获得对layout1的引用,并将其可见性设置为已消失,并将layout2的可见性设置为可见。
LinearLayout layout1 = findViewById(R.id.layout1);
LinearLayout layout2 = findViewById(R.id.layout2);
buttonNext.setOnClickListener(new View.OnClickListener()
{
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.