0

ボタン、グリッドビュー、テキストビューをxmlファイルでラップする線形レイアウトがあります。画面が縦向きの場合、これらの要素はすべて正常に表示されます。ただし、画面の向きを横向きに変更すると、テキストビューが消えます。構成変更時にレイアウトを変更したいのですが。それぞれが画面の一定の割合を占めるように、要素を水平に表示したいと思います。また、グリッドビューの行ごとに表示されるアイテムの数、およびおそらく他のいくつかのパラメーターを変更する必要があります。今まで私はこれを持っていますが、残りのパラメーターを変更する方法がわかりません。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    LinearLayout linearlayout= (LinearLayout) findViewById(R.id.LinearLayout02);
    GridView gridview=(GridView) findViewById(R.id.gridview);
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){           
       linearlayout.setOrientation(LinearLayout.HORIZONTAL);     
    }
    else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        linearlayout.setOrientation(LinearLayout.VERTICAL);         
    }
}
4

1 に答える 1

3

/ res /ディレクトリにタイトルlayout-landの付いたフォルダを作成し、そのフォルダに他のレイアウトと同じ名前の新しいレイアウトxmlを作成して、必要な場所にアイテム(TextViewなど)を配置します。デバイスが横向きになっているときにそれらが表示され、そこからAndroidが残りの処理を行います。

編集:次のコードを使用します。

@Override
public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);
     setContentView(R.layout.my_main_layout);

     //save your text from textviews, edittexts, etc. in temp variables

     InitializeUI(); //take your findViewById stuff out of onCreate and put it in its own method that can be called here as well.

     //set you textviews, etc back to previous values from temp vars

 }

それはそれをする必要があります。

于 2013-03-27T13:54:45.937 に答える