【问题标题】:How to handle screen rotation on Android如何在 Android 上处理屏幕旋转
【发布时间】:2011-11-14 10:52:31
【问题描述】:

我有一个 ListActivity,我想在手机的方向是纵向时显示它,我还有另一个正常的 Activity,我想在用户将手机旋转到横向模式时显示它。

一些代码:

  public class ListActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT) {
            //Do stuff
        }else if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Intent myIntent = new Intent(getApplicationContext(), AnotherActivity.class);
            startActivity(myIntent);
        }
    }
}

这种方法有效,但存在一些问题。有没有更正确的方法?这种方法的问题是,当您旋转手机并按下返回按钮时,由于手机没有旋转,因此屏幕只是变黑。那我是应该用其他方式实现轮换,还是以某种方式修改后退按钮,让用户无法返回上一个Activity?

【问题讨论】:

  • 您好!你已经得到了答案,所以,请选择它们或其中的一些或其中之一作为答案。否则不礼貌:-(
  • 对不起,您的评论不是我想要的,但我设法以另一种方式解决了它。你说的是对的,所以我把它标记为答案。

标签: java android android-activity listactivity screen-rotation


【解决方案1】:

这是一种正常的方式。但它的等待时间很长 - 5 秒。

还有一种方法:

将方向更改注册为配置更改

一个。

activity android:name=".SomeActivity" 
android:label="@string/app_name"
android:configChanges="orientation"

并将其作为配置更改处理。

B.

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);

    SetupActivity();
}

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多