Я хочу, чтобы определенные кнопки отображались только в альбомной ориентации, а не показывались и не были доступны в портретной ориентации.У меня есть отдельные XML-файлы для ландшафта и портрета
Я попытался использовать OrientationEventListener и во время его работы я проверил ориентацию устройства в альбомной ориентации - если это так, я вызвал findViewById на нем, но он вылетает из-заNullPointer.Мой код на данный момент:
Button landscapeTest;
public boolean isInLandscape() {
int orientation = getResources().getConfiguration().orientation;
return orientation == Configuration.ORIENTATION_LANDSCAPE;
OrientationEventListener orientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_UI) {
@Override
public void onOrientationChanged(int orientation) {
boolean isInLandscape = isInLandscape();
if (isInLandscape) {
landscapeTest = findViewById(R.id.button_landscape);
landscapeTest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v("landscapeButton", "I am working!!!");
}
});
}
}
};
Ожидается - когда я меняю ориентацию устройства (с книжной на альбомную), я должен видеть кнопку с идентификатором button_landscape в пользовательском интерфейсе, и когда я нажимаю на нее, я должен видеть"Я работаю!!!"в журнале
Фактически: когда я меняю ориентацию устройства (от портрета до пейзажа), происходит сбой с помощью NullPointer, потому что не удается найти кнопку.