ランドスケープモードでのシークバーの幅をプログラムで変更する

SeekBarの幅に問題があります。私はプログラムで幅を設定しようとしています(画面の幅 - 20px)コードで             SeekBar seek =(SeekBar)temp                     .findViewById(R.id.seek);

        android.view.ViewGroup.LayoutParams param = seek
                .getLayoutParams();

        param.width = width;
        //seek.setMinimumWidth(width);

ポートレートモードで動作しますが、電話機やエミュレータを回転させると、シークバーの幅は変わりません。何を変更するのですか?

0

1 答え

あなたは電話を回すときにonCreateが再び呼び出されると考えましたか? onCreateメソッドでコードを使用していますか?コードを実際に呼び出す必要があります。

このコードが呼び出されることを確認してください。また、これは、ここでsetparamsが表示されないため、ここでsetparams(param)を呼び出す必要があるため、ここでフォーラムに貼り付ける完全なコードではないと思います(実際のプロジェクトではこれがあります)

  android.view.ViewGroup.LayoutParams param = seek
                .getLayoutParams();
        param.width = width;
2
追加された
私はseekBar.getLayoutParamsのようなパラメータを取得しているのでsetLAyoutParamsは必要ないと思う。それはオブジェクトのコピーではない。私はブレークポイントをデバッグモードで入れましたが、onCreateまたはonResumeを通過しませんでした。
追加された 著者 Damir,
あなたの問題は、幅を設定するのではなく、他の場所にあります。 onCreateが呼び出される必要がある幅を設定するには
追加された 著者 Lukap,
この developer.android.comを参照してください。/reference/android/app /… このメソッドは、ポートレートとランドスケープの切り替え時に呼び出されます
追加された 著者 Lukap,