Android SeekBar在onCreateView中不工作
在我的MainActivity onCreateView中,我以编程方式(无xml)创建一个搜索栏,如下所示:Android SeekBar在onCreateView中不工作,android,seekbar,Android,Seekbar,在我的MainActivity onCreateView中,我以编程方式(无xml)创建一个搜索栏,如下所示: mVolControlSB = new SeekBar(context); mVolControlSB.setMax(maxVolume); mVolControlSB.setProgress(curVolume); mVolControlSB.setOnSeekBarChangeListener(new SeekBar.
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,但它一直显示在左侧)。而且,当我拖动拇指时不会调用回调,不会发生任何事情。我在MainActivity类中将mVolControlSB设置为静态字段,但也尝试将其作为本地字段
static SeekBar mVolControlSB;
有人有主意吗
注意,我应该补充一点,我使用的是选项卡布局,这段代码在内部调用
public static class DummySectionFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
谢谢这样对我很好用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ll = (LinearLayout) findViewById(R.id.lay);
mVolControlSB = new SeekBar(this);
mVolControlSB.setMax(15);
mVolControlSB.setProgress(10);
mVolControlSB
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
Log.d("MainActivity",
"volControlSB.setOnSeekBarChangeListener onStopTrackingTouch arg0="
+ arg0.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
Log.d("MainActivity",
"volControlSB.setOnSeekBarChangeListener onStartTrackingTouch arg0="
+ arg0.getProgress());
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1,
boolean arg2) {
}
});
mVolControlSB.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
ll.addView(mVolControlSB);
}
尝试设置
mVolControlSB.setProgress(arg1)您的onProgressChanged
方法中的code>。看起来代码与我的相同,但我的视图位于选项卡布局中,因此我在公共静态类DummySectionFragment Extendes Fragment中创建了布局。也许这就是问题所在?这起作用了,这里的关键是布局参数,我使用了WRAP_CONTENT作为宽度,这是错误的,你使用了MATCH_PARENT,这使它成为正确的宽度,回调也起作用了,我只是没有看到它们,因为没有地方可以拖动它。thanks@Jignesh我正面临SeekBar的问题,你能帮我一下吗。。。这是我的问题