如何在 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.