我在SearchView之上使用TextView作为标题。另一个选项是通过更改字体、颜色、文本大小和居中来自定义搜索查询提示。这似乎是一种更简单的方法。
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<SearchView
android:id="@+id/searchview"
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_marginStart="12dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="12dp"
android:background="@drawable/searchbackground"
android:closeIcon="@drawable/search_x_button"
android:iconifiedByDefault="false"
android:paddingStart="2dp"
android:paddingTop="11dp"
android:paddingEnd="15dp"
android:paddingBottom="11dp"
android:queryBackground="@android:color/transparent"
android:gravity="center"
android:searchIcon="@drawable/ic_ssearch"
android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/textView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="49dp"
android:layout_marginEnd="24dp"
android:fontFamily="@font/manrope_semibold"
android:text="@string/search"
android:textColor="@color/font_title"
android:textSize="19sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
如何将文本视图设置为在搜索视图处于焦点后隐藏,即用户点击它并出现闪烁的光标?
编辑:通过执行此操作修复
searchHint = view.findViewById(R.id.textView13);
然后
public boolean onQueryTextChange(String query) {
if (query.equals("")) {
searchHint.setVisibility(View.VISIBLE);
} else {
searchHint.setVisibility(View.GONE);
}
return true;
}
你可以这样尝试:
每当您单击文本视图时,将其可见性更改为"消失",并将焦点添加到搜索视图。
SearchView mSearchView = findViewById(R.id.searchview);
TextView textView = findViewById(R.id.textView13)
textView.setOnClickListener(v -> {
textView.setVisibility(View.GONE);
mSearchView.setSearchFocused(true);
});
希望对您有所帮助!
如果我理解正确,您只想在用户单击SearchView(@+id/searchview(时隐藏提示文本(@+id/textView13(。 如果是这样,似乎您可以添加以下代码(您可以检查是否可以满足您的要求(
searchview.setOnQueryTextFocusChangeListener { _, hasFocus ->
if (hasFocus) {
textView13.visibility = View.INVISIBLE
} else {
textView13.visibility = View.VISIBLE
}
}