【问题标题】:LinearLayout (dynamic) and screen orientation problemLinearLayout(动态)和屏幕方向问题
【发布时间】:2011-08-09 19:55:40
【问题描述】:

我尝试创建一个自定义 NumberPicker,它在大多数情况下都能很好地工作。唯一的问题是动态创建的布局。布局包括

  • 两个按钮(纵向模式下“+”在顶部,“-”在底部)
  • 一次编辑

在构造函数(“NumberPicker extends LinearLayout”)中,我使用 addView() 将三个组件添加到布局中。

如果以横向模式查看此布局,我希望按钮“+”和“-”不在顶部和底部,而是在右侧和左侧,否则 NumberPicker 的大小太大了。

通过使用 onConfigurationChanged 事件,我检查用户是否更改了屏幕方向并将 LinearLayout 的方向设置为水平和垂直。问题是“+”- 和“-”- 按钮的位置错误。它应该是这样的(例如横向):

"-" |编辑 | “+”

但它看起来是这样的:

"+" |编辑 | “-”

我该如何解决这个问题?我想按正确的顺序排列按钮。我可以使用 XML 解决问题吗?

谢谢。

【问题讨论】:

    标签: android xml layout screen orientation


    【解决方案1】:

    虽然可能有一种方法可以在不使用 XML 的情况下解决您的问题,但我认为使用它们并不是一个坏主意(例如,使用 getLayoutInflater().inflate(),它会返回一个可以转换为 NumberPicker 的视图)。

    如果您手动处理配置更改(使用 XML 文件中的 configurationChanges="keyboardHidden|orientation"),则需要使用上述 sn-p 重新检索 XML 文件。否则,活动将在轮换时被销毁,并且将自动检索适当的资源。如果您将您的肖像 XML 文件放在 layout 文件夹中,而将另一个放在 layout-land 文件夹中,则应该一切正常。

    【讨论】:

      【解决方案2】:

      您可以有两种不同的布局 xml,一种用于纵向,一种用于横向。对于横向,如果您使用水平线性布局方向,则可以将减号按钮放在加号按钮之前

      【讨论】:

      • 感谢您的回答。但是如何将 XML 文件“加载”到扩展 LinearLayout 的类 NumberPicker 中?
      • ctctlabs.com/index.php/blog/detail/… 您可以使用视图切换器在视图之间切换
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      相关资源
      最近更新 更多