Xamarin Android列表视图的垂直滚动

时间:2019-01-01 18:08:36

标签: android css xamarin xamarin.android

我正在尝试获取列表视图的垂直滚动,但是一直在显示所有列表视图项目,即使这意味着它们将不在电话的显示屏上显示。

这是我一直在使用的代码:

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px">
<GridLayout
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:rowCount="6"
    android:columnCount="1"
    android:orientation="vertical"
    android:id="@+id/myGridID">

    <!-- other controls like TextView, EditBox, other Grid layouts -->

    <ListView
         android:layout_row="4"
         android:layout_column="0"
         android:isScrollContainer="true"
         android:choiceMode="singleChoice"
         android:scrollbarSize="100px"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:id="@+id/myListId" />

    <!-- other controls like TextView, EditBox, other Grid layouts -->

</GridLayout>
</LinearLayout> 

我希望当列表项的高度超过100px(大于android:scrollbarSize的值)时,垂直滚动将变为活动状态。这没有发生。

使用以下代码:

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px">
<GridLayout
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:rowCount="6"
    android:columnCount="1"
    android:orientation="vertical"
    android:id="@+id/myGridID">

    <!-- other controls like TextView, EditBox, other Grid layouts -->

    <ScrollView 
      a:visibility="visible"
      xmlns:a="http://schemas.android.com/tools"
      android:scrollbars="vertical"
      android:visibility="visible"
      android:layout_height="150px"
      android:layout_row="4"
      android:layout_column="0">
        <ListView
          android:isScrollContainer="true"
          android:choiceMode="singleChoice"
          android:scrollbarSize="100px"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:id="@+id/myListId" />
    </ScrollView>

    <!-- other controls like TextView, EditBox, other Grid layouts -->

</GridLayout>
</LinearLayout>

因此,将列表视图放在ScrollView中会创建一个垂直滚动,但是始终只显示一个列表项,所以在这里我也希望从列表视图中至少看到三个项目,然后滚动浏览其余的项目。

不过,我仍然倾向于通过仅使用列表视图将垂直滚动功能添加到我的应用程序中,因为在尝试从列表中获取子对象时,ScrollView似乎使事情变得复杂。

有人可以解释一下我在android xamarin列表视图的垂直滚动中做错了什么吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,Listview具有一个Scroll,将scrollview作为其父级添加是一个不好的习惯,

要更好地了解事物的工作原理,请查看以下帖子here

更新

删除滚动并按如下所示更改列表视图代码:

 {
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "^6.4.0",
    "firebase-functions": "^2.1.0"
  },
  "private": true
}


    {
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "firebase-admin": "^6.4.0",
    "firebase-functions": "^2.1.0"
  },
  "private": true
}

如果您还需要以下属性,请一一添加,看看是否更改这些属性会导致问题。

TypeError: Cannot read property 'from' of undefined
at Promise.all.then.result (/user_code/index.js:21:47)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)