Kri*_*aig 5 c# android xamarin.android xamarin xamarin.forms
这是有问题的相关代码:
XAML:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="ContentPage_MainPage"
x:Class="OpenBacon.MainPage">
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="ToolbarItem_Subreddits" Order="Primary" Priority="10" Text="Initializing...." Clicked="ToolbarItemSubreddits_Clicked" />
<ToolbarItem x:Name="ToolbarItem_Spacer" Order="Primary" Priority="20" Text=" " />
<ToolbarItem Order="Primary" Priority="30" Clicked="ToolbarItemSearch_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconSearch" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem x:Name="ToolbarItem_Mail" Order="Primary" Priority="40" Clicked="ToolbarItemMail_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconMail" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Order="Primary" Priority="50" Clicked="ToolbarItemBaconButton_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconBaconButton" />
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<ScrollView x:FieldModifier="public" x:Name="ScrollView_Main" Orientation="Vertical">
<StackLayout x:Name="StackLayout_Main">
<!-- Sort bar. -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" VerticalOptions="Start" BackgroundColor="LightGray" RowSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="" FontSize="Small" VerticalOptions="End" Margin="2" x:Name="Label_PostsSinceLastRefresh" />
<Button x:Name="ButtonSort" Grid.Column="1" Text="" FontSize="Small" Clicked="ButtonSort_Clicked" />
</Grid>
</Grid>
<!-- Posts list goes here (generated). -->
<StackLayout VerticalOptions="StartAndExpand" x:Name="StackLayout_Posts">
</StackLayout>
</StackLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
C#:
(在 MainPage 的构造函数中)
Content = ScrollView_Main;
Run Code Online (Sandbox Code Playgroud)
如果我注释掉“Content =”行,ScrollView 就会消失,但所有工具栏项都能够再次接收其单击事件。未注释,滚动效果很好,但我无法点击页面上的任何内容。
我找不到任何提及修复此行为的选项。这是 Xamarin.Forms 错误还是我遗漏了什么?
编辑: 这是完整的 XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="ContentPage_MainPage"
x:Class="OpenBacon.MainPage">
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="ToolbarItem_Subreddits" Order="Primary" Priority="10" Text="Initializing...." Clicked="ToolbarItemSubreddits_Clicked" />
<ToolbarItem x:Name="ToolbarItem_Spacer" Order="Primary" Priority="20" Text=" " />
<ToolbarItem Order="Primary" Priority="30" Clicked="ToolbarItemSearch_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconSearch" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem x:Name="ToolbarItem_Mail" Order="Primary" Priority="40" Clicked="ToolbarItemMail_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconMail" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Order="Primary" Priority="50" Clicked="ToolbarItemBaconButton_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconBaconButton" />
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<ScrollView x:FieldModifier="public" x:Name="ScrollView_Main" Orientation="Vertical">
<StackLayout x:Name="StackLayout_Main">
<!-- Sort bar. -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" VerticalOptions="Start" BackgroundColor="LightGray" RowSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="" FontSize="Small" VerticalOptions="End" Margin="2" x:Name="Label_PostsSinceLastRefresh" />
<Button x:Name="ButtonSort" Grid.Column="1" Text="" FontSize="Small" Clicked="ButtonSort_Clicked" />
</Grid>
</Grid>
<!-- Posts list goes here (generated). -->
<StackLayout VerticalOptions="StartAndExpand" x:Name="StackLayout_Posts">
</StackLayout>
</StackLayout>
</ScrollView>
<ContentView x:Name="Popup_Subreddits" BackgroundColor="DimGray" Padding="10, 10" IsVisible="False" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
<StackLayout VerticalOptions="Start" HorizontalOptions="Center">
<StackLayout Orientation="Vertical" HeightRequest="400" WidthRequest="300" BackgroundColor="White">
<ListView x:Name="ListView_Subreddits" ItemTapped="ListView_Subreddits_ItemTapped">
<ListView.ItemsSource>
<x:Array Type="{x:Type x:String}"></x:Array>
</ListView.ItemsSource>
</ListView>
</StackLayout>
</StackLayout>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="Popup_Subreddits_OutClick" />
</ContentView.GestureRecognizers>
</ContentView>
<ContentView x:Name="Popup_BaconButton" BackgroundColor="#446" Padding="75, 0, 0, 75" IsVisible="False" AbsoluteLayout.LayoutBounds="1, 0, .9, .9" AbsoluteLayout.LayoutFlags="All">
<StackLayout VerticalOptions="Start" HorizontalOptions="Center">
<StackLayout Orientation="Vertical" HeightRequest="600" WidthRequest="300" BackgroundColor="#0079D3">
<ListView x:Name="ListView_BaconButton" ItemTapped="ListView_BaconButton_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ImageCell Text="{Binding Name}" Detail="{Binding Detail}" ImageSource="{Binding ImageSrc}" TextColor="White" DetailColor="WhiteSmoke" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</StackLayout>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="Popup_BaconButton_OutClick" />
</ContentView.GestureRecognizers>
</ContentView>
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
我终于在这里找到了问题的解决方案:
https://forums.xamarin.com/discussion/comment/373736/#Comment_373736
显然,我需要做的就是将以下内容添加到 ScrollView 定义中:
AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
AbsoluteLayout.LayoutFlags =“全部”
IE
<ScrollView
x:FieldModifier="public"
x:Name="ScrollView_Main"
Orientation="Vertical"
AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
AbsoluteLayout.LayoutFlags="All">
Run Code Online (Sandbox Code Playgroud)
所以完整的 XAML 现在看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="ContentPage_MainPage"
x:Class="OpenBacon.MainPage">
<ContentPage.ToolbarItems>
<ToolbarItem x:Name="ToolbarItem_Subreddits" Order="Primary" Priority="10" Text="Initializing...." Clicked="ToolbarItemSubreddits_Clicked" />
<ToolbarItem x:Name="ToolbarItem_Spacer" Order="Primary" Priority="20" Text=" " />
<ToolbarItem Order="Primary" Priority="30" Clicked="ToolbarItemSearch_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconSearch" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem x:Name="ToolbarItem_Mail" Order="Primary" Priority="40" Clicked="ToolbarItemMail_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconMail" />
</ToolbarItem.Icon>
</ToolbarItem>
<ToolbarItem Order="Primary" Priority="50" Clicked="ToolbarItemBaconButton_Clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource" Android="OpenBaconBaconButton" />
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<ScrollView x:FieldModifier="public" x:Name="ScrollView_Main" Orientation="Vertical" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
<StackLayout x:Name="StackLayout_Main">
<!-- Sort bar. -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" VerticalOptions="Start" BackgroundColor="LightGray" RowSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="" FontSize="Small" VerticalOptions="End" Margin="2" x:Name="Label_PostsSinceLastRefresh" />
<Button x:Name="ButtonSort" Grid.Column="1" Text="" FontSize="Small" Clicked="ButtonSort_Clicked" />
</Grid>
</Grid>
<!-- Posts list goes here (generated). -->
<StackLayout VerticalOptions="StartAndExpand" x:Name="StackLayout_Posts">
</StackLayout>
</StackLayout>
</ScrollView>
<ContentView x:Name="Popup_Subreddits" BackgroundColor="DimGray" Padding="10, 10" IsVisible="False" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
<StackLayout VerticalOptions="Start" HorizontalOptions="Center">
<StackLayout Orientation="Vertical" HeightRequest="400" WidthRequest="300" BackgroundColor="White">
<ListView x:Name="ListView_Subreddits" ItemTapped="ListView_Subreddits_ItemTapped">
<ListView.ItemsSource>
<x:Array Type="{x:Type x:String}"></x:Array>
</ListView.ItemsSource>
</ListView>
</StackLayout>
</StackLayout>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="Popup_Subreddits_OutClick" />
</ContentView.GestureRecognizers>
</ContentView>
<ContentView x:Name="Popup_BaconButton" BackgroundColor="#446" Padding="75, 0, 0, 75" IsVisible="False" AbsoluteLayout.LayoutBounds="1, 0, .9, .9" AbsoluteLayout.LayoutFlags="All">
<StackLayout VerticalOptions="Start" HorizontalOptions="Center">
<StackLayout Orientation="Vertical" HeightRequest="600" WidthRequest="300" BackgroundColor="#0079D3">
<ListView x:Name="ListView_BaconButton" ItemTapped="ListView_BaconButton_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ImageCell Text="{Binding Name}" Detail="{Binding Detail}" ImageSource="{Binding ImageSrc}" TextColor="White" DetailColor="WhiteSmoke" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</StackLayout>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="Popup_BaconButton_OutClick" />
</ContentView.GestureRecognizers>
</ContentView>
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它与我的问题中的代码相同,除了这两个属性被添加到 ScrollView 定义中。这解决了一切。
以下是它现在的一些屏幕截图:
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |