2017-06-18 9 views
0

誰かが最後のリスト項目に常にフォーカスを維持する方法を教えてもらえますか? WhatsAppの会話の例では、メッセージを送信するときに、到着したメッセージは常にフォーカスされています...またはそれに類似したソリューションですか?ListViewはリストの最後の項目をフォーカスしていますか? - Xamarin Forms

ListViewに何かが挿入されると、以下の項目を表示するために[オプションを与える]の代わりに何かが挿入されると、私はそれを逆にしたいと思います。常に最後の項目を画面に表示します。

答えて

1

私は、新しい要素を追加するためのリストビューとbuttomの2つの要素がある例を作成しました。あなたは、ボタン、スクロールをよりよく示すために非常に巨大で見ることができるように

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="4*" /> 
    </Grid.RowDefinitions> 
    <ListView x:Name="ListView" /> 
    <Button 
     Grid.Row="1" 
     Clicked="Button_OnClicked" 
     Text="Add animal" /> 
</Grid> 

は、これは私のXAMLです。私のコードビハインドで

、私はアニメーションで最後に追加された要素にスクロールするListView.ScrollToメソッドを使用します。私は、これはあなたを助けることができることを願っています

public partial class MainPage : ContentPage 
{ 
    private ObservableCollection<String> animals; 
    private int _counter = 0; 

    public MainPage() 
    { 
     InitializeComponent(); 
     animals = new ObservableCollection<string>(new List<string>{"dog","cat","fish","elephant","monkey"}); 
     ListView.ItemsSource = animals; 
    } 

    private void Button_OnClicked(object sender, EventArgs e) 
    { 
     var newElement = "new animal"+_counter; 
     _counter++; 
     animals.Add(newElement); 
     ListView.ScrollTo(newElement, ScrollToPosition.End, true); 
    } 
} 

+1

ありがとう、私の友人!成功!完璧に働いた!ありがとうございました! –

関連する問題