Дочерние элементы scrollviewer, предотвращающие прокрутку колесиком мыши?

На самом деле вы можете установить стиль по умолчанию для TextViews (и большинства других встроенных виджетов) без необходимости выполнять собственный класс java или настраивать стиль отдельно.

Если вы посмотрите в themes.xml в Android-источнике, вы увидите кучу атрибутов для стиля по умолчанию для различных виджетов. Ключ - это атрибут textViewStyle (или editTextStyle и т. Д.), Который вы переопределяете в своей настраиваемой теме. Вы можете переопределить их следующим образом:

Создать styles.xml:







Затем просто примените эту тему к вашему приложению в AndroidManifest.xml:

И все ваши текстовые представления по умолчанию будут соответствовать стилю, определенному в MyTextViewStyle (в данном случае жирным и красным)!

Это было протестировано на устройствах с уровня API 4 и далее отлично работаю.

29
задан Tom 15 January 2013 в 23:17
поделиться

2 ответа

Определение ControlTemplate для Listbox, которое не включает ScrollViewer, решает проблему. См. этот ответ и эти две страницы MSDN для получения дополнительной информации:

ControlTemplate

ListBox Стили и шаблоны

12
ответ дан Community 15 January 2013 в 23:17
поделиться

Еще один способ реализовать это, создав собственный ScrollViewer, подобный этому:

public class MyScrollViewer : ScrollViewer
{
    protected override void OnMouseWheel(MouseWheelEventArgs e)
    {
        var parentElement = Parent as UIElement;
        if (parentElement != null)
        {
            if ((e.Delta > 0 && VerticalOffset == 0) ||
                (e.Delta < 0 && VerticalOffset == ScrollableHeight))
            {
                e.Handled = true;

                var routedArgs = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
                routedArgs.RoutedEvent = UIElement.MouseWheelEvent;
                parentElement.RaiseEvent(routedArgs);
            }
        }

        base.OnMouseWheel(e);
    }
}
2
ответ дан kahr 15 January 2013 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: