質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

588閲覧

Xamarin.FormsでMasterDetailPage内のListViewを正常にスクロールさせたい(Android)

takuo-nkmr

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/04/18 02:28

編集2018/04/18 02:42

発生している問題

Xamarin.Formsを使用して、Android/iOSアプリを開発しています。
MasterDetailPageのDetail側でListViewを使用して一覧を表示したのですが、
Androidで縦向き表示→横向き表示への変更や、最初から横向き表示の場合等で
ListViewのitem全てを表示可能なスクロールとなりません(一部しか表示されない)。
item全てをスクロール可能なようにしたいです。

  1. 初期表示時(縦)では全てスクロール可能

  1. 端末を横向きに変更すると、スクロールが一部のみとなる。

  ※横向きで初期表示した場合も同様

該当のソースコード

再現するプロジェクトを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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ListView が ScrollView の中に入っているのが良くないのだと思います。このような画面では ScrollView は不要でしょう。 XAML で ScrollView を取り除けば画面を横にしても全体が見えるようになるはずです。

投稿2018/04/18 03:30

NakamuraYoichi

総合スコア374

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takuo-nkmr

2018/04/18 03:44

ご回答ありがとうございます。 記載いただきました通り、ScrollViewを削除することで期待する動作となりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問