[英]How to create UI block in Xamarin.Forms same as position: fixed in HTML?
這是我嘗試使用Grid和ScrollView的嘗試:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MobApp.TestPage">
<ContentPage.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Text="News Header" Grid.Column="0" Grid.Row="0" />
<ScrollView Grid.Column="0" Grid.Row="1">
<StackLayout x:Name="NewsItems">
<StackLayout>
<Label Text="News 1 Title" />
<Label Text="News 1 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 2 Title" />
<Label Text="News 2 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 3 Title" />
<Label Text="News 3 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 4 Title" />
<Label Text="News 4 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 5 Title" />
<Label Text="News 5 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 6 Title" />
<Label Text="News 6 Text" />
</StackLayout>
<StackLayout>
<Label Text="News 7 Title" />
<Label Text="News 7 Text" />
</StackLayout>
</StackLayout>
</ScrollView>
</Grid>
但是,當在Android 4.4(API 19)上滾動時,模擬器ScrollView內容會與標簽“ News Header”重疊。 另外在手冊中強烈建議不要使用嵌套的ScrollView。
我該如何解決這個任務?
這可能只是第一個Grid
RowDefinition
Height
需要稍微增加或設置為auto
(如果您不介意循環計算命中)
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
是的,不要使用嵌套的scrollview
這沒有任何意義,並且可能會出現不合理的行為
更新資料
也許嘗試改變VerticalOptions
在滾動視圖或<Label Text="News Header"
更新2
也嘗試刪除網格上的列和控件上的列說明符,在考慮列之前我遇到了奇怪的布局問題
另外,嘗試用網格替換堆棧布局。
注意:我知道這些建議會碰到很多,但是有時候您只需要調整一些東西,直到它們不幸地起作用即可。
一個令人着迷的現象花了我幾天的時間)這項任務真正通過Grid + ScrollView解決了,從我的示例來看,一切正常。 顯然我的模擬器出了點問題。 一切始於我注意到安裝Xamarin后默認提供的仿真器(Nougat 7.1)如何顯示滾動條。 我理解並開始挖掘。 我創建的所有模擬器(使用從4.4到7.0的任何api)都顯示了帶有上述錯誤的滾動條。 要更改/復制或重新創建默認情況下提供的同一模擬器不起作用,模擬器管理器將詛咒某種錯誤。 我進行了更深入的研究,這花費了很多時間和神經,但結果卻有回報:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.