発生している問題
Xamarin.Formsを使用して、Android/iOSアプリを開発しています。
MasterDetailPageのDetail側でListViewを使用して一覧を表示したのですが、
Androidで縦向き表示→横向き表示への変更や、最初から横向き表示の場合等で
ListViewのitem全てを表示可能なスクロールとなりません(一部しか表示されない)。
item全てをスクロール可能なようにしたいです。
- 初期表示時(縦)では全てスクロール可能
- 端末を横向きに変更すると、スクロールが一部のみとなる。
該当のソースコード
再現するプロジェクトをGitHubに作成してあります。
https://github.com/takuo-nkmr/ScrollListViewProblemSample
主要なソースは下記となります。
ItemList.xaml.cs(コードビハインド )
C#
1using System; 2using System.Collections.Generic; 3using System.Collections.ObjectModel; 4using Xamarin.Forms; 5using ScrollListViewProblemSample.Model; 6 7namespace ScrollListViewProblemSample 8{ 9 public partial class ItemList : ContentPage 10 { 11 ObservableCollection<ItemListModel> Items = new ObservableCollection<ItemListModel>(); 12 13 public ItemList() 14 { 15 InitializeComponent(); 16 17 // ListViewのバインディング 18 itemList.ItemsSource = Items; 19 for (var i = 0; i < 30; i++) 20 { 21 var item = new ItemListModel 22 { 23 itemName = "item-" + i.ToString() 24 }; 25 26 Items.Add(item); 27 } 28 } 29 } 30}
ItemList.xaml
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 3 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 4 x:Class="ScrollListViewProblemSample.ItemList"> 5 <StackLayout HorizontalOptions="FillAndExpand" 6 VerticalOptions="FillAndExpand" 7 Spacing="0"> 8 <ScrollView HorizontalOptions="FillAndExpand" 9 VerticalOptions="FillAndExpand"> 10 <ListView x:Name="itemList" 11 HasUnevenRows="true"> 12 <ListView.ItemTemplate> 13 <DataTemplate> 14 <TextCell Text="{Binding itemName}"/> 15 </DataTemplate> 16 </ListView.ItemTemplate> 17 </ListView> 18 </ScrollView> 19 </StackLayout> 20</ContentPage> 21
試したこと
ListViewの設定可能なプロパティ等を試してみたのですが、修正されませんでした。
カスタムビューを作成する必要があるのでしょうか・・・?
補足情報(FW/ツールのバージョンなど)
- Visual Studio for Mac 7.4.3
- Xamarin.Forms 2.5.0.121934
- 検証端末: Nexus7(Android6.0.1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 03:44