次の問題があります。携帯電話を縦向きから横向きに変更すると、画像が消えてしまいます。私が現在の活動を行っていて、方向を変えると、それは完全にうまく機能します。別のアクティビティに行って戻ってきても、まったく問題なく動作します。しかし問題は、メイン ページに戻った後、最初に方向を変更したときに onConfigurationChanged() が呼び出されないことです。戻ったときに画像が表示される/正しく表示されない場合がありますが、最初に向きを変更したときに onConfigurationChanged() が呼び出されず、向きを2回変更するまで画像が表示されます/表示されません。皆さんの助けをいただければ幸いです。ここに私のコードのいくつかの部分があります。configChange- orientation パーミッションを既にマニフェストに入れているので、問題ありません。
@Override
public void onConfigurationChanged(Configuration newConfig) {L.p("configList",5200184);
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE&&isVertical==true) {
Logo.setVisibility(ImageView.GONE);
mainLogo.setVisibility(ImageView.GONE);
isHorizontal=true;
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT&&isHorizontal==true){
Logo.setVisibility(ImageView.VISIBLE);
mainLogo.setVisibility(ImageView.VISIBLE);
isVertical=true;
}
}
@Override
protected void onResume() {L.p("onResumeList", 5200113);
super.onResume();
Context ctx = getApplicationContext();
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
if((display.getOrientation() == Surface.ROTATION_90) || (display.getOrientation() == Surface.ROTATION_270))
{//Horizontal
L.p("you are resuming horizontal",5200124);
Logo.setVisibility(ImageView.INVISIBLE);
mainLogo.setVisibility(ImageView.INVISIBLE);
isHorizontal=true;
//isVertical=false;
}
else {//Vertical
L.p("you are resuming vertical",5200131);
Logo.setVisibility(ImageView.VISIBLE);
mainLogo.setVisibility(ImageView.VISIBLE);
isVertical=true;
// isHorizontal=false;
}
tracker.trackPageView("/deviceList");
}
ありがとう!