2013-07-23 5 views
2

У меня есть Seekbar, который отлично работает, за исключением одной части. Я хочу настроить высоту textView в зависимости от значения Seekbar.Seekbar не устанавливается .getLayoutParams(). Высота

Я использую этот код, чтобы отрегулировать высоту TextView:

SeekBar sb1 = (SeekBar)findViewById(R.id.telecom_years_bar); 
    sb1.setMax(14); 
    sb1.setProgress(9); 
    sb1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){ 

     @Override 
     public void onProgressChanged(SeekBar sb1, int progress, boolean fromUser) { 
      progress = progress + 1; 
      TextView RedInitialBar = (TextView) findViewById(R.id.initial_bar1); 
      RedInitialBar.getLayoutParams().height = (progress); 

У меня есть подобный код на создание и она отлично работает, когда активность первой загрузки, но регулируя SeekBar не обновлять высота текста. Все остальные вычисления, которые я привязал к тому, что Seekbar отлично пересчитывают, когда он настроен. Что мне не хватает?

ответ

1

При изменении высоты или любых размеров View после того как она выкладывается на экран, он должен быть заложен снова. Попробуйте позвонить requestLayout() по телефону TextView.

+0

Конечно! Я просто добавил 'RedInitialBar.requestLayout();' до 'RedInitialBar.getLayoutParams(). height = (progress);' и кажется, что он отлично работает. Бесконечно благодарен! – DeadSilentFilmStars

0

Да, установка высоты TextView не будет действовать. Вместо этого используйте

RedInitialBar.setText(size * density); 
+0

Спасибо за ответ, но это позволяет изменить размер текста/шрифта или размер поля textView? Потому что я хочу только отрегулировать высоту поля textView. Мой код выше работает отлично вначале (после «onCreate») не работает вместе с поисковой панелью. – DeadSilentFilmStars