Android - Loading Spinner 教程
封面图
•
2025-11-13
•
Android开发
192
0
0
0
在 Android 开发中,**Spinner** 是一个非常常用的 UI 控件,用于让用户从下拉列表中选择一个选项。而 **Loading Spinner** 通常指的是在数据加载过程中显示的旋转进度条(例如:`ProgressBar`),它常用于提示用户当前正在进行某些操作(如网络请求、数据加载等)。 --- ## 🧩 什么是 Loading Spinner? 在 Android 中,“Loading Spinner” 一般有两种含义: 1. **Spinner 控件**(带下拉菜单的控件) 2. **进度条(ProgressBar)**(用于表示加载状态) 如果你是想了解如何在 Android 中使用 Spinner 控件(带下拉菜单),请参考以下教程。 如果你是想了解如何在加载数据时显示一个旋转的进度条(Loading Spinner),也可以参考下面的内容。 --- ## ✅ Android Spinner 教程(带下拉菜单) ### 1. 在 XML 布局中添加 Spinner ```xml <!-- res/layout/activity_main.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> ``` --- ### 2. 在 Java/Kotlin 中设置 Spinner 数据 #### Java 示例: ```java Spinner spinner = findViewById(R.id.spinner); // 创建一个数组 String[] items = {"Item 1", "Item 2", "Item 3", "Item 4"}; // 创建适配器 ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, items); // 设置下拉样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // 设置适配器到 Spinner spinner.setAdapter(adapter); ``` #### Kotlin 示例: ```kotlin val spinner: Spinner = findViewById(R.id.spinner) val items = arrayOf("Item 1", "Item 2", "Item 3", "Item 4") val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, items) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = adapter ``` --- ### 3. 监听 Spinner 的选择事件 ```java spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String selected = parent.getItemAtPosition(position).toString(); Toast.makeText(MainActivity.this, "Selected: " + selected, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // 可选 } }); ``` --- ## 🔄 加载时显示 Loading Spinner(ProgressBar) 如果你是在加载数据时想要显示一个旋转的进度条,可以使用 `ProgressBar`。 ### 1. 在 XML 中添加 ProgressBar ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:padding="16dp"> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Loading..." /> </LinearLayout> ``` --- ### 2. 在代码中控制 ProgressBar 显示与隐藏 ```java ProgressBar progressBar = findViewById(R.id.progressBar); TextView textView = findViewById(R.id.textView); // 模拟异步加载 new Handler(Looper.getMainLooper()).postDelayed(() -> { progressBar.setVisibility(View.GONE); textView.setText("Data Loaded!"); }, 3000); ``` --- ## 🎯 总结 | 类型 | 功能 | 示例 | |------|------|------| | **Spinner** | 下拉选择框 | `Spinner` 控件 + `ArrayAdapter` | | **Loading Spinner** | 加载时显示的旋转进度条 | `ProgressBar` 控件 | --- 如果你想了解的是 **Material Design 的 Spinner(如 Chip 或 DropdownMenu)**,也可以告诉我,我可以提供更现代的实现方式(如使用 `ChipGroup` 或 `BottomSheetDialog`)。 需要我帮你生成一个完整的项目结构或示例代码吗?
上一篇:
Android利用异步任务AsyncTask发送post请求获取json数据
下一篇:
Android - UI screen components介绍
标题录入,一次不能超过6条
留言
评论