将ScrollView更改为Horizo​​ntalScrollView

时间:2014-01-15 13:02:51

标签: android xml android-layout

我有两个定义mainactivity.xml的布局,可以在layout文件夹中找到,另一个mainactivity.xml可以在layout-port文件夹中找到。你可能会说一个布局是横向,另一个是肖像。

我遇到的问题是,在横向布局中,我有ScrollView,而在纵向布局中,它是HorizontalScrollView,具有相同的id。当设备的方向发生变化时,如何将(在代码中)ScrollView更改为Horizo​​ntalScrollView?

2 个答案:

答案 0 :(得分:0)

你可以在res / values-land中创建一个bools.xml文件(还有res / values-port中的一个文件,其中is_landscape应该设置为false)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="is_landscape">true</bool>
</resources>

然后在您的代码中,您可以检查

if (getResources().getBool(R.bool.is_landscape)) {
     //setup horizontal scrollview
} else {
     //setup vertical scrollview
}

虽然也许更好的方法是使用这个库(所以你不必为两个不同的ui组件编写代码)。

https://github.com/lucasr/twoway-view

我在当前的项目中使用它,它的工作非常好。

答案 1 :(得分:-3)

在您的滚动视图中定义此属性

android:orientation =“horizo​​ntal”for landscape

android:orientation =“vertical”for portrait