如何在更新数据时保持gridview滚动条的位置

问题描述 投票:1回答:1

我具有以下子类来更新我的gridview的设计行:

在gridview中加载数据以使滚动条位置保持在当前位置时最简单的方法是什么?>>

public class TextAdapter : BaseAdapter
    {
        Context context;

        List<string> Sources;

        string res;

        public TextAdapter(Context c, List<string> s)
        {
            context = c;
            Sources = s;
        }

        public override int Count
        {
            get { return Sources.Count; }
        }

        public override Java.Lang.Object GetItem(int position)
        {
            return null;
        }

        public override long GetItemId(int position)
        {
            return 0;
        }

        // create a new ImageView for each item referenced by the Adapter
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            TextView textView;

            if (convertView == null)
            {
                textView = new TextView(context);
                textView.SetLines(6);
            }
            else
            {
                textView = (TextView)convertView;
            }

            textView.SetText(Sources[position], null);

            return textView;
        }

在gridview中加载数据以使滚动条位置保持在当前位置时最简单的方法是什么?>>

Gridview:

<GridView
android:id="@+id/gvContagem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:numColumns="1"
android:textStyle="bold"
android:layout_below="@+id/headerLabel"
android:layout_marginTop="33dp" />

。CS文件:

 readonly JavaList<String> artigos = new JavaList<string>();

    List<string> mItems = new List<string>();

    GridView gvContagem = FindViewById<GridView>(Resource.Id.gvContagem);
    sqliteConnection con = new SqliteConnection("Data Source = " + BaseDados);

    con.Open();

    artigos.Clear();

    string stm = "SELECT Artigo, Descricao FROM Trend";

    using (SqliteCommand cmd = new SqliteCommand(stm, con))
    {
        using (SqliteDataReader rdr = cmd.ExecuteReader())
        {
            while (rdr.Read())
            {

                artigos.Add(rdr.GetValue(0) + rdr.GetValue(1));


            }

        }

    }

gvContagem.Adapter = new TextAdapter(this,artigos);

我具有以下子类来更新gridview的设计行:在gridview中加载数据以使滚动条位置保持在当前位置时,最简单的方法是什么?公共类...

c# xamarin xamarin.android
1个回答
0
投票

[哦,等等,再看一次,我看到您在加载新数据时正在创建一个新适配器...因此,可能没有简单的方法可以执行所需的操作。如果新数据的数据少于旧数据,怎么办?如果滚动到旧数据的末尾,则可能无法滚动到相同位置。然后,您可能需要重新考虑如何更新数据。我必须假定该问题仅在您运行从.cs文件共享的代码的第二次及以后发生。

但是,假设没有上述问题,您应该可以执行以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.