1

我制作了一个在模拟器以及中小型手机上运行良好的应用程序。但是在平板电脑上运行时,它总是只显示横向模式。我还使用了单独的布局和布局-土地布局。我没有得到背后的原因。这是代码:

public class SplashActivity extends FragmentActivity
{
  public void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    requestWindowFeature(1);
    getWindow().setFlags(1024, 1024);

  FragmentManager fragmentmanager = getSupportFragmentManager();
  FragmentTransaction fragmenttransaction = fragmentmanager.beginTransaction();
  if (getResources().getConfiguration().orientation == 
      Configuration.ORIENTATION_LANDSCAPE) {
      setRequestedOrientation(0);
  }
  else
  {
      setRequestedOrientation(1);  
  }
  fragmenttransaction.commit();

    setContentView(R.layout.welcome);
    new Handler().postDelayed(new SplashThread(), 2000L);
  }

  class SplashThread implements Runnable
  {
    SplashThread()
    {
    }

    public void run()
    {
      SplashActivity.this.startActivity(new Intent(SplashActivity.this, McqHomePage.class));
      SplashActivity.this.finish();
    }
  }
}

请帮助我。在此先感谢。

4

1 回答 1

1

如果您不关心方向,则不妨完全省略这段代码:

if (getResources().getConfiguration().orientation == 
      Configuration.ORIENTATION_LANDSCAPE) {
      setRequestedOrientation(0);
  }
  else
  {
      setRequestedOrientation(1);  
  }

上面的代码也有一个丑陋的副作用,即某些方向更改总是会导致纵向——例如,您的代码不会捕捉到反向横向。此外,请不要使用 0 或 1,而是使用提供的常量,这样如果值发生变化,您的代码也不会中断。

与此同时,检查你的清单——我敢打赌你在那里添加了一个方向属性。

于 2012-09-23T05:36:28.973 回答