除了android-layouts,我还需要一些帮助。
对于瞳孔:

实际上,我使用了一个名为 daily.xml 的 View 。这些 View 包含一个翻转器,它以编程方式填充有 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 **);

现在,我想添加一个横向模式。在这些模式下,我不会有这样的鳍状肢,因为有足够的空间在水平线性布局上显示所有 ListViews。所以我创建了一个 layout-land Resource-Folder 并每天添加另一个。 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 时我应该调用不同的方法还是有更好的可能性处理它?

非常感谢柯基!

最佳答案

您可以使用 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 - 不同的屏幕方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10815881/

10-09 01:31