Проблема, с которой я столкнулся, заключается в том, что я хочу отображать текстовое представление внутри каждой панели поиска для каждого номера полосы в объекте эквалайзера.
Текстовое представление действительно отображается внутри панели поиска, но только нижнее показывает значение, когдая перемещаю панель поиска.
Есть идеи, почему?
Equalizer.java код
private void setupEqualizer(){
short numberOfBandsFreq = mEqualizer.getNumberOfBands();
final short lowerEqualizerBandLevel = mEqualizer.getBandLevelRange()[0];
final short upperEqualizerBandLevel = mEqualizer.getBandLevelRange()[1];
for (short i = 1; i < numberOfBandsFreq; i++){
final short equalizerBandIndex = i;
mEqLinearLayout.setGravity(Gravity.CENTER);
final ArcSeekBar arcSeekBar = new ArcSeekBar(this);
progressValueTv = new TextView(this);
progressValueTv.setLayoutParams(paramsProgress);
progressValueTv.setTextColor(getResources().getColor(R.color.white));
progressValueTv.setText("0dB");
int[] colorArray = getResources().getIntArray(R.array.gradient);
arcSeekBar.setId(i);
arcSeekBar.setLayoutParams(arkSeekBarParams);
arcSeekBar.setProgressWidth(50);
arcSeekBar.setProgressGradient(colorArray);
arcSeekBar.setMaxProgress(upperEqualizerBandLevel - lowerEqualizerBandLevel);
arcSeekBar.setProgress(mEqualizer.getBandLevel(equalizerBandIndex));
arcSeekBar.setOnProgressChangedListener(new ProgressListener() {
@Override
public void invoke(int i) {
mEqualizer.setBandLevel(equalizerBandIndex, (short) (i + lowerEqualizerBandLevel ));
progressValueTv.setText(String.valueOf((i + lowerEqualizerBandLevel) / 100) + " dB");
}
});
seekBarRowLayout.addView(lowerEqualizerBandLevelTv);
seekBarRowLayout.addView(arcSeekBar);
seekBarRowLayout.addView(progressValueTv);
seekBarRowLayout.addView(upperEqualizerBandLevelTv);
mEqLinearLayout.addView(seekBarRowLayout);
}
}