Xamarin Gridview Height Skew Scrollview

时间:2017-10-25 21:20:36

标签: xamarin xamarin.android

我的应用程序中有一个gridview,我可以动态增加其高度。但我的问题是,每当我增加高度,滚动条就会滚动到页面的中心。什么可能导致这个问题?以下是我的代码:

Axml:

  <android.support.v4.widget.NestedScrollView

      android:layout_width="match_parent"

      android:layout_height="match_parent"
>

       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

                   android:layout_width="match_parent"

                   android:layout_height="wrap_content"

                   android:orientation="vertical"

                   android:gravity="center"

                   android:background="#e1effa">
               <GridView

                   android:id="@+id/gvPhones"

                   android:layout_width="fill_parent"

                   android:layout_height="wrap_content"

                   android:gravity="center"

                   android:verticalSpacing="5dp"

                   android:drawSelectorOnTop="true"

                   android:stretchMode="columnWidth" />

       </LinearLayout>


 </android.support.v4.widget.NestedScrollView>

Cs:

  _mySimpleItemLoader = new LoadRecords();
  _mySimpleItemLoader.LoadMoreItems();

  gvPhone = FindViewById<GridView>(Resource.Id.gvPhones);
   _gridviewAdapter = new PhonesAdapter(this, _mySimpleItemLoader, this);
   gvPhone.Adapter = _gridviewAdapter;
   gvPhone.LayoutParameters.Height = 777 * gvPhone.Count;

1 个答案:

答案 0 :(得分:1)

  

但我的问题是,每当我增加高度时,滚动条就会滚动到页面的中心。

当您打开Activity时,某些控件需要关注。但是在您的.axml布局中没有指定的控件可以获得焦点,系统会选择第一个需要关注的合格控件。

当您在android:focusableInTouchMode="true"中设置LinearLayout属性时,您的LinearLayout将专注于开始,而NestedScrollView将不会滚动到页面的中心。