有条件地在Android中布局之间切换

时间:2011-12-16 23:45:40

标签: android

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

例如,如果视图中存在加载视图的逻辑:

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

  }

如果调用else代码,则视图永远不会将标题TextView设置为String。

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

3 个答案:

答案 0 :(得分:2)

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

为此,只需在Activity中使用FrameLayout作为片段的占位符。片段可以使用侦听器模式与活动进行通信。

答案 1 :(得分:1)

如果您想要翻阅差异Views,您可以检查各种可能性,例如:

  • ViewPager通过兼容性库(http://android-developers.blogspot.com/2011/08/horizo​​ntal-view-swiping-with-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/FrameLayout.html)

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

答案 2 :(得分:0)

BTW你有没有考虑过碎片。它们旨在处理条件布局。他们的基本动机是屏幕尺寸等。但它们也适合您的问题。

参考:

相关问题