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) {
ありがとう