2011-12-16 71 views
2

如何在活动中的布局之间切换并根据当前使用的布局填充字段?Android中的布局之间有条件地切换

例如,如果有在视图中的逻辑来加载的图:如果else码称为视图从未设置标题的TextView到字符串

if(category == 1){ 
     setContentView(R.layout.layout1); 
    }else{ 
     setContentView(R.layout.layout2); 
    TextView title = (TextView) findViewById(R.id.titleTV); 
     title.setText("myTitle"); 

    } 

如何在两个视图之间有条件地完成?

+2

我会经历两个活动而不是两个视图,但需要更多关于您的场景的信息。 – Blundell 2011-12-17 00:26:44

回答

2

另一种方法是使用Fragment。提到dimitris选项的优点是每个片段都有自己的生命周期,因此您可以将与每个视图相关的所有代码委托给它的片段,并保持主要活动的清洁。

要做到这一点,只需在Activity中使用FrameLayout作为片段的占位符即可。碎片可以通过使用侦听器模式与活动进行通信。

1

在你想跨越区别Views翻转您可以检查各种可能性,如案例:

  • 通过兼容性库ViewPager(http://android-developers.blogspot.com/2011/08/水平 - 视图 - 刷卡与 - viewpager.html)
  • ViewFlipperViewSwitcher(http://developer.android.com/reference/android/widget/ViewFlipper.html,http://developer.android.com/reference/android/widget/ViewSwitcher.html
  • 或者甚至简单FrameLayout( http://developer.android.com/reference/android/widget/Fr ameLayout.html)

希望这有助于现在!如果你需要任何具体的东西,请拍摄它!

+1

不知道更多的上下文我认为ViewSwitcher是伟大的。我一直都在使用它,它的超级简单易用,可以添加动画。 – sgarman 2011-12-17 00:12:23

0

顺便说一句你有没有考虑过片段。它们旨在处理条件布局。他们的基本动机是屏幕尺寸等,但他们也可以适合您的问题。

参考: