Когда устройство вращается, я хочу установить видимость ImageView. Я не знаю разницы в следующих двух примерах. Интересно, не может ли onConfigurationChanged работать или есть другие проблемы.
1) нормальный код
>
package com.facebookexam.www.facebookexam;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.res.Configuration;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView)findViewById(R.id.MainLogoIV);
updateLayout(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE);
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
updateLayout(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE);
}
private void updateLayout(boolean isLandscape) {
if (isLandscape) {
iv.setVisibility(View.GONE);
} else {
iv.setVisibility(View.VISIBLE);
}
}
}
пакет com.facebookexam.www.facebookexam;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.res.Configuration;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView)findViewById(R.id.MainLogoIV);
iv.setVisibility(View.VISIBLE);
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
iv.setVisibility(View.GONE);
}
}




Здесь нет ничего «ненормального».
Во-первых, вы отключаете ImageView, если ориентация — альбомная. [если(...)]
Во втором случае вы заставляете ImageView исчезнуть во всех направлениях. [Без условной операции].