/ / Android: programowe ustawienie parametru maxHeight dla ProgressBar / SeekBar - android, widok, pasek postępu, seekbar

Android: ustawianie parametru maxHeight programowo dla ProgressBar / SeekBar - Android, widok, pasek postępu, pasek wyszukiwania

Można utworzyć SeekBar w formacie XML w następujący sposób ...

<SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bpseekbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:max="100"
android:maxHeight="8dp"
...

Teraz chcę to zrobić programowo od czasutrzeba dostosować maxHeight na podstawie rozdzielczości ekranu (tak, wiem, że nie należy tego robić, ale mam ku temu uzasadnione powody). Nie mam problemów z programowym ustawieniem parametrów, poza tym, że nie mogę się dowiedzieć, jak ustawić maksymalna wysokość. Czuję, że muszę użyć atrybutów, ale nie mogłem znaleźć dokładnie jak. Jakieś wskazówki?

Odpowiedzi:

4 dla odpowiedzi № 1

Nie jest to możliwe bezpośrednio. SeekBar (właściwie ProgressBar, który SeekBar rozszerza) pobiera maxHeight tylko z atrybutów układu XML, nie ma odpowiedniej metody.

Dodatkowo ProgressBar zwiększa jego maxHeight w wywołaniu setProgressDrawable, aby mieć co najmniej wysokość drawable. Możesz to wykorzystać.

Inną możliwością jest rozszerzenie SeekBar i udostępnienie własnej metody onMeasure. To jest właśnie tam, gdzie używana jest maxHeight. Następnie możesz użyć rozszerzonego SeekBar w układzie xml.