私のアプリケーションでは、3 つのパネルがあるアコーディオン レイアウトを使用しており、デバイスの高さのサイズに合わせてパネル (texview) のサイズを設定しようとしています。これは、画面の向きに変更があると機能しません。横向きの場合、デバイスの高さに応じてビューのサイズが変化しません。これについて教えてください。
これは私のコードです
if(layoutView.getId() == R.id.Advertitletext)
{
openLayout = panel1;
v = panel1.getVisibility();
hideThemAll();
if(v != View.VISIBLE)
{
panel1.setVisibility(View.VISIBLE);
params = advertoutput.getLayoutParams();
params.height = parentLinear.getHeight()-msgrecvtitle.getHeight()-msgsenttitle.getHeight()-mLogCheck.getHeight()-PearActivity.peartabs.getHeight();
advertoutput.setLayoutParams(params);
}
}
これは私の onConfiguration() メソッドです
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ViewTreeObserver observer = parentLinear.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
parentLinear.getViewTreeObserver().removeGlobalOnLayoutListener(this);
if(openLayout==panel1){
params = advertoutput.getLayoutParams();
params.height = parentLinear.getHeight()-msgrecvtitle.getHeight()-msgsenttitle.getHeight()-mLogCheck.getHeight()-PearActivity.peartabs.getHeight();
advertoutput.setLayoutParams(params);
}
else if(openLayout == panel2){
params = msgrecvoutput.getLayoutParams();
params.height = parentLinear.getHeight()-adverttitle.getHeight()-msgsenttitle.getHeight()-mLogCheck.getHeight()-PearActivity.peartabs.getHeight();
msgrecvoutput.setLayoutParams(params);
}else if(openLayout == panel3){
params = msgsentoutput.getLayoutParams();
params.height = parentLinear.getHeight()-adverttitle.getHeight()-msgrecvtitle.getHeight()-mLogCheck.getHeight()-PearActivity.peartabs.getHeight();
msgsentoutput.setLayoutParams(params);
}
}
});
}