SeekBar无法设置.getLayoutParams().height属性

3

我有一个SeekBar,除了一个问题,它能够完美地运行。我想根据SeekBar的值调整textView的高度。

我使用以下代码来调整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 时不会更新 textView 的高度。当调整 Seekbar 时,我绑定到它的所有其他计算都可以完美地重新计算。我错过了什么?

2个回答

2

当您在将View布局到屏幕上后更改其高度或任何尺寸时,必须重新布局。请尝试在TextView上调用requestLayout()


当然可以!我刚刚在“RedInitialBar.getLayoutParams().height = (progress);”之前添加了“RedInitialBar.requestLayout();”,看起来完美解决了。非常感谢! - DeadSilentFilmStars

0

是的,设置TextView的高度不会产生任何效果。相反,可以使用

RedInitialBar.setText( size * density );

谢谢您的回答,但这会调整文本/字体的大小还是textView框的大小?因为我只想调整textView框的高度。我的上面的代码在一开始时运行得很完美(在“onCreate”之后),但与seekbar不兼容。 - DeadSilentFilmStars

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接