Xamarin.Forms Picker Selection BackgroundColor - android

I am Searching for a proper fix on how to change the Color of the Pickers (Date & Time) in Xamarin Forms. I already have the Custom Renderer to customize the Dialog, but is there also a similar possibility to customize the Background Color of the displayed Picker itself(and the annoying Pink line) on all Instances at once?
I found out how to make it, but my solution is not that elegant since i have to define the Background Color on each Instance throughout the App.
-> i want the Blue Box behind the 16:00 to disappear
the code to the picture i have as follows:
<TimePicker Grid.Row="5"
Grid.Column="0"
x:Name="BtnTime2"
Format="t"/>
<Button Grid.Row="5"
Grid.Column="1"
x:Name="BtnTime2Now"
CornerRadius="15"/>
<DatePicker Grid.Row="6"
Grid.Column="0"
Grid.ColumnSpan="2"
x:Name="BtnDate"
Format="D"
BackgroundColor="#00000000"/>
Hope anybody of you guys can help me

ok nevermind...
i already had the solution in my App.xaml
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Arbeitszeitrechner_Forms.App">
<Application.Resources>
<ResourceDictionary>
...some more Styles here...
<Style TargetType="TimePicker">
<Setter Property="BackgroundColor" Value="#00000000"/>
<Setter Property="TextColor" Value="{StaticResource Text}"/>
</Style>
<Style TargetType="DatePicker">
<Setter Property="BackgroundColor" Value="#00000000"/>
<Setter Property="TextColor" Value="{StaticResource Text}"/>
</Style>
</ResourceDictionary>
</Application.Resources>

Related

Xamarin background color property

I want to use AppThemeBinding and use a binding for both Dark and Light color. Here is the code I have:
<Grid BackgroundColor="{AppThemeBinding Light={Binding onLigColour}, Dark={Binding someDarkColour}}"> <!-- ... --> </Grid>
And a class that it binds to and retrieves those properties, here is a code that works:
<Grid BackgroundColor="{onLigColour}"> <!-- ... --> </Grid>
Can anyone tell me why binding in a AppThemeBinding does not work?
We could not binding a value for AppThemeBinding.
<Grid BackgroundColor="{AppThemeBinding Light={Binding onLigColour}, Dark={Binding someDarkColour}}">
Because the Light and Dork of AppThemeBinding is not bindable.
The bindable property looks like below.
You could use the color directly.
<Grid BackgroundColor="{AppThemeBinding Light=#F1E1FF, Dark=#6C6C6C}">
Or you could use the static resource.
<Grid BackgroundColor="{AppThemeBinding Dark={StaticResource Background_Dark}, Light={StaticResource Background_Light}}">

TextInput selectionColor property no changing color on android

After reading the React Native documentation I understood that selectionColor was used to change the color of the cursor instead of that primary default color of android system.
So I tried the following:
<TextInput selectionColor="#2E5BFF" {...props} autoCapitalize="none" autoCorrect={false} />
The problem is that on android devices it still gets that green default color of android, on the emulator tought its fine and is showing #2E5BFF color. My android devices both have android P.
Is there any known bug or am I doing something wrong here?
EDIT
I'm using Expo SDK 32.0.0
You can set colorControlActivated in styles.xml file.Like this
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">#color/kio_turquoise</item>
<item name="colorPrimaryDark">#color/kio_hot_pink</item>
<!-- sets cursor color -->
<item name="colorControlActivated">#android:color/black</item>
</style>
because the backbone of the app is the native android application. For more information you can refer this article. It is very helpful.
React native on android styling the cursor
<TextInput
selectionColor={global.COLOR.DARKBLUE}
underlineColorAndroid={global.COLOR.ORANGE}
autoCapitalize="none" autoCorrect={false} />
you can try this

Static Resources not work in Xamarin Oreo emulator

In my Xamarin project I have many static resources styles defined. This worked perfectly in my Nougat emulator. Suddenly, after upgrading to Oreo 8.1, I discovered the style are not set anymore.
I use the latest update of Visual Studio 2017.
As an example I defined a style in the App.xaml as follow:
<!-- Application resource dictionary -->
<ResourceDictionary>
<Style x:Key="pageStyle" TargetType="ContentPage">
<Setter Property="BackgroundColor" Value="Black" />
</Style>
<Style x:Key="headerStyle" TargetType="Label">
<Setter Property="HorizontalOptions"
Value="CenterAndExpand" />
<Setter Property="VerticalOptions"
Value="Start" />
<Setter Property="FontSize" Value="Large" />
<Setter Property="FontAttributes" Value="Bold" />
<Setter Property="TextColor" Value="Yellow" />
</Style>
</ResourceDictionary>
In my content page, I consumed this style at this way:
<Label Text="Nieuwe bestelling"
VerticalOptions="Start"
Style="{StaticResource headerStyle}" />
My problem is that the headerStyle doesn't work. No error message will be displayed and the style is not set in my Android project.
Can anyone help me?
Thanks,
Marcel

ListView ContextAction not following layout

Wondering if anyone else has run into the following issue.
I've got my App.MainPage wrapped in a navigation page
MainPage = new NavigationPage(new MyPage());
From MyPage I navigate to a user account page which is a TabbedPage
await Navigation.PushAsync(new MyAccountTabbedPage());
and here's the xaml (pretty simple)
<TabbedPage.Children>
<userAccount:SitesTab />
<userAccount:ProjectsTab />
<userAccount:SettingsTab />
</TabbedPage.Children>
Now here's where it gets fun. From within my SitesTab, I need to show a ListView that contains ContextActions
<AbsoluteLayout>
<ListView AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All"
ItemsSource="{Binding ListItems}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Do Stuff"/>
<MenuItem Text="Delete Stuff" IsDestructive="True"/>
</ViewCell.ContextActions>
<StackLayout>
<Label Text="{Binding .}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</AbsoluteLayout>
The issue I'm running up against is that the context action on Android doesn't cover/replace the NavigationBar, but rather pushes it down and screws everything up.
Before Context
After Context
So what's up here? Has anyone figured out a way around this? That context menu at the top of the page should cover over the NavigationBar instead of push everything down.
turns out I needed the following in my app compat theme
<style name="myActivityTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionModeOverlay">true</item>
</style>

Xamarin Forms buttons have border on API 23 devices

I have the following global style that I hoped would turn off the button borders on Android:
<Style TargetType="Button">
<Setter Property="BorderWidth" Value="0" />
<Setter Property="BackgroundColor" Value="Transparent" />
<Setter Property="BorderColor" Value="Transparent" />
<Setter Property="BorderRadius" Value="0"/>
</Style>
On Android API 19, everything looks fine. On API 23 device, I get borders around the buttons:
Any idea how to get rid of these?
Unfortunately I had no choice but to change the buttons to StackLayouts and attach a gesture recognizer to the StackLayout similar to the following:
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="btnMore_Clicked"/>
</StackLayout.GestureRecognizers>
While it sucks - it basically means anyone who wants to use the Xamarin Forms button controls with a transparent background - STOP - it will not work correctly on the newer Android platforms. Just save yourself the trouble and use a simpler control and attached a gesture recognizer to it.

Categories

Resources