我有两个定义mainactivity.xml
的布局,可以在layout
文件夹中找到,另一个mainactivity.xml
可以在layout-port
文件夹中找到。你可能会说一个布局是横向,另一个是肖像。
我遇到的问题是,在横向布局中,我有ScrollView
,而在纵向布局中,它是HorizontalScrollView
,具有相同的id
。当设备的方向发生变化时,如何将(在代码中)ScrollView更改为HorizontalScrollView?
答案 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 =“horizontal”for landscape
android:orientation =“vertical”for portrait