Switch:
android:id="@+id/sw_print_receipts"
android:layout_width="match_parent"
android:layout_height="@dimen/base_item_height"
android:text="@string/receipt_printers"
Сейчас у меня кликабельная область у всего свичера, куда бы не кликнул (рис (1)). Как сделать так, чтобы кликабельным был только переключатель (рис (2))?
Лучшее решение – писать текст в отдельном TextView.
Но, если Вы уж очень хотите, то можно ограничить кликабельную область только переключателем:
mSwitch.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Rect thumbRect = mSwitch.getThumbDrawable().getBounds();
return !thumbRect.contains((int) motionEvent.getX(), (int) motionEvent.getY());
}
});
Здесь, при клике по Switch запрашивается область, в которой размещен переключатель и далее происходит проверка: если клик совершен вне переключателя, то возвращается true и клик считается обработанным, в противном случае вызывается дефолтное поведение Switch.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости