На самом деле вы можете установить стиль по умолчанию для TextViews (и большинства других встроенных виджетов) без необходимости выполнять собственный класс java или настраивать стиль отдельно.
Если вы посмотрите в themes.xml
в Android-источнике, вы увидите кучу атрибутов для стиля по умолчанию для различных виджетов. Ключ - это атрибут textViewStyle
(или editTextStyle
и т. Д.), Который вы переопределяете в своей настраиваемой теме. Вы можете переопределить их следующим образом:
Создать styles.xml
:
Затем просто примените эту тему к вашему приложению в AndroidManifest.xml
:
…
И все ваши текстовые представления по умолчанию будут соответствовать стилю, определенному в MyTextViewStyle
(в данном случае жирным и красным)!
Это было протестировано на устройствах с уровня API 4 и далее отлично работаю.
Определение ControlTemplate
для Listbox
, которое не включает ScrollViewer
, решает проблему. См. этот ответ и эти две страницы MSDN для получения дополнительной информации:
Еще один способ реализовать это, создав собственный 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);
}
}