得到不同的按钮高度为同一个按钮

问题描述:

我有一个ButtonLinearLayout我想检索它的高度。得到不同的按钮高度为同一个按钮

我用sample_button.getHeight(),但它给出了不同的高度值。

即我根据seekbar进步修改按钮的高度如下:

public void onProgressChanged(SeekBar seekBar, int progress, 
      boolean fromTouch) { 

LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
       new ViewGroup.MarginLayoutParams(50, progress * 20)); 

     lp2.setMargins(200, 0, 0, 0); 
     sample_button.setLayoutParams(lp2); 

Log.i("Activity", "progress = " + progress); 
Log.i("Activity", 
       "sample_button.getHeight() = " + sample_button.getHeight()); 
} 

和日志值如下:

progress = 1 
sample_button.getHeight() = 60 

progress = 2 
sample_button.getHeight() = 20 

progress = 3 
sample_button.getHeight() = 40 

progress = 2 
sample_button.getHeight() = 60 

progress = 3 
sample_button.getHeight() = 40 

progress = 4 
sample_button.getHeight() = 60 

progress = 3 
sample_button.getHeight() = 80 

注意按钮是越来越正常显示,但当progress=2时,它首先显示height=20,然后如上所示显示height=60等等的其他进度值。

我做错了什么。任何帮助赞赏。

您是否尝试过这种方式:

ViewGroup.LayoutParams params = sample_button.getLayoutParams(); 
params.height = progress * 20; 
sample_button.setLayoutParams(params); 
+0

但它的设置按钮娜的高度?这对我的事业有什么帮助?并在哪里把这段代码片段? – GAMA

+0

我认为你重置你的按钮,因为你没有改变它的布局参数,但传递新的对象。因此,不同的高度。 –

+0

你应该尝试使用它而不是线条:4-8 –