Manzara modunda arama modunun genişliğini program aracılığıyla değiştirme

SeekBar genişliğinde bir sorunum var. Genişliği program aracılığıyla (ekranın genişliği - 20px) kodla ayarlamaya çalışıyorum             SeekBar seek = (SeekBar) temp                     .findViewById (R.id.seek);

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

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

ve portre modunda çalışır, ancak telefon veya emülatör döndürdüğümde, arama çubuğu genişliği değişmez. Ne değişmeli?

0

1 cevap

Telefonu döndürdüğünüzde, yeniden oluşturulduğunu düşündünüz mü? Kodunuz onCreate yönteminde mi? Kodunuzun aslında çağrıldığından emin olmanız gerekir.

Bu kodun çağrıldığından emin olun ve sorun olmayacaktır. Ayrıca bu forumda buraya yapıştırdığınız kod tam değil sanırım, burada setparams görmüyorum, setparams (param), (ama sanırım bunu gerçek projenizde var sanırım)

  android.view.ViewGroup.LayoutParams param = seek
                .getLayoutParams();
        param.width = width;
2
katma
Ben setLAyoutParams gerek yok düşünüyorum çünkü seekBar.getLayoutParams gibi params alıyorum, bu nesne kopyası referans değil. Kesme noktalarını hata ayıklama moduna geçirdim, ancak onCreate veya onResume'den geçemedim.
katma yazar Damir, kaynak
Sorununuz, başka bir yerde değil, genişliğin ayarlanmasında değil. Genişliği ayarlamak için onCreate çağrılmalıdır
katma yazar Lukap, kaynak
bkz. developer.android.com/reference/android/app/& hellip; portre ve manzara arasında geçiş yaptığınızda bu yöntem çağrılır
katma yazar Lukap, kaynak