作業中のアプリ内のアクセシビリティ バーの一部である 2 つのテキスト ビューに追加した onClickListeners に問題があります。アプリがタブレット上にある場合、リスナーは期待どおりに動作し、テキスト サイズを適切に増減しますが、携帯電話上で実行すると、どのビューがタッチされてもサイズ リスナーのみが呼び出されます。
誰かが私を正しい方向に向けることができれば、私は最も感謝しています。以下は、2 つのリスナーを追加するコードです。
accLayout = new LinearLayout(this);
accLayout.setOrientation(LinearLayout.HORIZONTAL);
TextView bigger = new TextView(this);
bigger.setBackgroundResource(R.drawable.bigger);
bigger.setLayoutParams(new LayoutParams(screenWidth/5, utils.dpToPx(60)));
bigger.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
htmlLayout.increaseTextSize();
}
});
TextView smaller = new TextView(this);
smaller.setBackgroundResource(R.drawable.smaller);
smaller.setLayoutParams(new LayoutParams(screenWidth/5, utils.dpToPx(60)));
smaller.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
htmlLayout.decreaseTextSize();
}
});
TextView invert = new TextView(this);
invert.setBackgroundResource(R.drawable.invert);
invert.setLayoutParams(new LayoutParams(screenWidth/5, utils.dpToPx(60)));
invert.setHeight(utils.dpToPx(60));
invert.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!HtmlLayout.INVERTED){
htmlLayout.invertColours();
HtmlLayout.INVERTED = true;
} else {
htmlLayout.unInvertColours();
HtmlLayout.INVERTED = false;
}
}
});
LinearLayout sliderContainer = new LinearLayout(this);
sliderContainer.setBackgroundResource(R.drawable.slider);
sliderContainer.setLayoutParams(new LayoutParams((screenWidth/5)*2, utils.dpToPx(60)));
sliderContainer.setGravity(Gravity.CENTER_VERTICAL);
SeekBar brightness = new SeekBar(this);
brightness.setLayoutParams(new LayoutParams((int) (screenWidth * 0.4), utils.dpToPx(30)));
brightness.setMax(100);
brightness.setBackgroundColor(Color.TRANSPARENT);
brightness.setProgress((int) (0.7 * 100));
brightness.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = (float)(progress + 20) / 100.0f;
getWindow().setAttributes(lp);
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
});
sliderContainer.addView(brightness);
accLayout.setGravity(Gravity.CENTER_VERTICAL);
accLayout.addView(bigger);
accLayout.addView(smaller);
accLayout.addView(invert);
accLayout.addView(sliderContainer);
mainContainer.addView(accLayout,2);