私はラジオアプリで作業していましたが、私は携帯電話のタブレットとポートレートモードで表示するように強制しました。 これを達成するためにこれまで私が行ってきたことがここにあります。タブレット用の横向きモードと携帯用のポートレートを強制的に使用する
まず、res.valuesにboolリソースを入れて、画面サイズを確認します。
// From my res/values/bool.xml(sw600 and 720)dp.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="landscape_only">true</bool>
</resources>
// res/values/bool.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">true</bool>
</resources>
私は、主な活動にブール値をチェックすることによって、コードを要求された画面の向きを余儀なくされました。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// locking out landscape screen orientation for mobiles
if(getResources().getBoolean(R.bool.portrait_only)){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
// locking out portait screen orientation for tablets
if(getResources().getBoolean(R.bool.landscape_only)){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
}
}
これまでのところ、これはかなりうまくいきました。今私は持っている問題があります。
タブレット用のポートレートモードをロックアウトするためのコードを実装したとき、私のアプリは横向きに切り替えてから数秒間ポートレートに切り替わりました。私はそれが最初に肖像画で始まっていないことをどうやって確認しますか?それはランドスケープで開始する必要があります。
[NullPointerExceptionとは何ですか?それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Selvin
setContentView()の前にコードを呼び出していますか? – Juan