android – 不同的屏幕方向
作者:互联网
除了android-layouts我还需要一些帮助.
例如:
实际上我使用了一个名为daily.xml的视图.这个视图包含一个翻页器,如果用户需要,它将以编程方式填充5个ListViews来翻转.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/background">
<de.oszimtcc.timetableview.TimetableFlipperView
android:id="@+id/flipper"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_margin="20dp"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent" >
</de.oszimtcc.timetableview.TimetableFlipperView>
</LinearLayout>
TimetableScreen.java中的翻转器
activity.setContentView(R.layout.daily);
Log.i(TimetableApplication.LOG_TAG,"Start create Timetable-Aplication");
activity.setContentView(R.layout.daily);
activity.inflater = LayoutInflater.from(this.activity);
flipper = (TimetableFlipperView) activity.findViewById(R.id.flipper);
dayListView = (ListView) activity.findViewById(R.id.dayListView);
flipper.AddContent(**Content to show **);
现在,我想添加一个landscapemode.在这些模式中,我不会hava这样的鳍状肢,因为有足够的空间在水平线性布局上显示所有ListViews.所以我创建了一个布局 – 土地资源 – 文件夹,每天添加另一个. XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@drawable/background">
<de.oszimtcc.timetableview.BlockListView
android:id="@+id/dayListViewMonday"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="5dp"
android:listSelector="@drawable/day_selector"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent">
</de.oszimtcc.timetableview.BlockListView>
...the same ListView again for 4 times, with different android:id...
</LinearLayout>
但是如何处理我的TimetableScreen.java类呢?因为没有鳍状肢我不能使用我的默认构造函数来初始化类.我应该在每次调用onCreate时调用不同的方法,还是有更好的可能性处理它?
非常感谢Kooki!
解决方法:
你可以使用getResources().getConfiguration().orientation,以找出屏幕方向.如果是横向模式,请不要初始化鳍状肢变量.
我刚在代码中添加了一行,检查if控制语句.
activity.setContentView(R.layout.daily);
Log.i(TimetableApplication.LOG_TAG,"Start create Timetable-Aplication");
activity.setContentView(R.layout.daily);
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_POTRAIT) { //Check this statement
activity.inflater = LayoutInflater.from(this.activity);
flipper = (TimetableFlipperView) activity.findViewById(R.id.flipper);
dayListView = (ListView) activity.findViewById(R.id.dayListView);
flipper.AddContent(**Content to show **);
} else {
//Code for Landscape mode
}
标签:android,android-layout,android-orientation 来源: https://codeday.me/bug/20190630/1333398.html