如何在 Android 中的 listView 编程方式滚动到特定位置?


此示例演示如何以编程方式滚动到 Android 中的特定位置。

步骤 1 − 在 Android Studio 中创建新项目,转到 File ⇒ New Project 并填写所有必填详细信息来创建新项目。

步骤 2 − 将以下代码添加到 res/layout/activity_main.xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/rl"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:padding="10dp"
   tools:context=".MainActivity">
   <Button
      android:id="@+id/btn"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="ListView Scroll To Position 22" />
   <ListView
      android:id="@+id/listView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@id/btn" />
</RelativeLayout>

步骤 3 − 向 src/MainActivity.java 添加以下代码

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final ListView listView = findViewById(R.id.listView);
      Button btn = findViewById(R.id.btn);
      String[] footballPlayers = new String[] {
         "Cristiano Ronaldo",
         "Lionel Messi",
         "Neymar Jnr",
         "Eden Hazard",
         "Isco",
         "Gareth Bale",
         "Sergio Buesquets",
         "Zlatan Ibrahimovic",
         "GG Buffon",
         "Iker Casillas",
         "Rafael Varane",
         "Zinedine Zidane",
         "Menphis Depay",
         "Gerard Pique",
         "Victor Valdes",
         "David De Gea",
         "Mo Salah",
         "Ronaldinio",
         "Marco Rues",
         "Asencio",
         "Luis Figo",
         "Sergio Ramos",
         "Maldini",
         "Marcelo",
         "Karim Benzema",
         "Sir Alex Firguson"
      };
      final List<String> footballPlayers = new ArrayList<>(Arrays.asList(footballPlayers));
      final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, footballPlayers);
      listView.setAdapter(arrayAdapter);
      btn.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            listView.smoothScrollToPosition(22);
         }
      });
   }
}

步骤 4 − 向 androidManifest.xml 添加以下代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample">
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

让我们尝试运行您的应用程序。我假设您已将实际的安卓移动设备连接到了电脑。要在 Android Studio 中运行该应用,打开项目的一个活动文件并单击工具栏中的运行  图标。选择移动设备作为选项,然后查看移动设备,其中将显示默认屏幕−

单击 此处 下载项目代码。

更新于: 05-8 月-2019

2K+ 浏览量

开启您的 职业生涯

完成课程后即可获得认证

开始
广告
© . All rights reserved.