根据屏幕方向在微调器和列表视图之间切换

时间:2014-03-01 14:04:08

标签: java android listview orientation spinner

在我的Android应用程序中,我有一个包含不同计算器的微调器,当选择计算器时,它会显示在下面的滚动视图中。当屏幕设置为水平时,布局会更改,以使滚动视图位于右侧,并且微调器位于左侧,并且它们的工作方式相同。

然而,当屏幕处于水平位置时,listview看起来会更好,但我似乎找不到在java代码中进行切换的方法。

任何人都可以帮忙吗?

这是initialize方法的代码,我想知道是否有一种方法可以插入if语句,如果屏幕是垂直的,则初始化微调器,如果屏幕是水平的,则会初始化listview 。

private void initialize() {

    valg_vertical = (Spinner) findViewById(R.id.sKalk);

    // Adds the custom look for the spinner
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.custom_spinner, getResources().getStringArray(
                    R.array.calculator));
    adapter.setDropDownViewResource(SpinnerItemLayout);
    valg_vertical.setAdapter(adapter);
    // Adds the custom look for the spinner

    lLayout = (LinearLayout) findViewById(R.id.lInSVKalk);
    valg_vertical.setOnItemSelectedListener(this);
}

1 个答案:

答案 0 :(得分:2)

您有两种可能的解决方案:

  1. portraitlandscape模式创建不同的布局(它们分别位于layoutlayout-land个文件夹下。)
  2. 在布局中创建一个容器(例如FrameLayout)。并根据方向在运行时添加相应的视图。
  3. 无论如何,由于两个方向都使用不同的元素,因此在代码中应添加以下if语句:

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
    
    } else {
    
    }