在我的 MainActivity onCreateView 中,我以编程方式(无 xml)创建了一个搜索栏,如下所示:
mVolControlSB = new SeekBar(context);
mVolControlSB.setMax(maxVolume);
mVolControlSB.setProgress(curVolume);
mVolControlSB.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
Log.d("MainActivity", "volControlSB.setOnSeekBarChangeListener onStopTrackingTouch arg0="+arg0);
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
Log.d("MainActivity", "volControlSB.setOnSeekBarChangeListener onStartTrackingTouch arg0="+arg0);
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
}
});
mVolControlSB.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 0, 20));
kitctrlLayout.addView(mVolControlSB);
它显示了搜索栏,但拇指位置在错误的位置(在我的示例中,maxVolume 为 15,curVolume 为 10,但它一直显示到左侧)。此外,当我拖动拇指时没有调用回调,没有任何反应。我将 mVolControlSB 设置为 MainActivity 类中的静态字段,但我也尝试将其作为本地
static SeekBar mVolControlSB;
有人有想法吗?
请注意,我应该补充一点,我正在使用选项卡布局,并且在内部调用了此代码
public static class DummySectionFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
谢谢