Android Studio实现顶部搜索框
时间: 2023-11-02 15:03:19 浏览: 179
android顶部(toolbar)搜索框实现代码
1. 在布局文件中添加一个搜索框组件,例如使用EditText组件。
```xml
<EditText
android:id="@+id/search_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search"
android:inputType="text"
android:maxLines="1"
android:padding="8dp"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp" />
```
2. 在Activity或Fragment中获取搜索框组件,并实现搜索功能。例如绑定搜索按钮的点击事件,当用户点击搜索按钮时,获取输入的关键字并进行搜索。
```java
EditText searchBox = findViewById(R.id.search_box);
Button searchButton = findViewById(R.id.search_button);
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String keyword = searchBox.getText().toString().trim();
// TODO: 进行搜索操作
Toast.makeText(MainActivity.this, "Searching for " + keyword, Toast.LENGTH_SHORT).show();
}
});
```
3. 可以使用Toolbar组件来实现一个固定在顶部的搜索框,例如在布局文件中添加以下代码:
```xml
<androidx.appcompat.widget.Toolbar
android:id="@+id/search_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:title=""
app:subtitle=""
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin">
<EditText
android:id="@+id/search_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search"
android:inputType="text"
android:maxLines="1"
android:padding="8dp"
android:textColor="@android:color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="18sp" />
</androidx.appcompat.widget.Toolbar>
```
4. 在Activity或Fragment中获取Toolbar组件,并设置为ActionBar。
```java
Toolbar toolbar = findViewById(R.id.search_toolbar);
setSupportActionBar(toolbar);
```
5. 在Menu中添加搜索按钮,例如在menu_search.xml文件中添加以下代码:
```xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/ic_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="androidx.appcompat.widget.SearchView" />
</menu>
```
6. 在Activity或Fragment中重写onCreateOptionsMenu方法,将menu_search.xml文件中的菜单加载到Toolbar中。
```java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
return true;
}
```
7. 在Activity或Fragment中重写onOptionsItemSelected方法,处理搜索按钮的点击事件。
```java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_search) {
// TODO: 处理搜索按钮的点击事件
return true;
}
return super.onOptionsItemSelected(item);
}
```
阅读全文