如何设置SearchView组件中queryHint属性的文本大小
方案1:通过XML样式静态设置
首先在res/values/styles.xml中添加自定义SearchView文本样式:
<style name="CustomSearchViewHintStyle" parent="TextAppearance.AppCompat.Widget.SearchView.Query"> <!-- 自定义hint文本大小,单位sp --> <item name="android:textSize">14sp</item> <!-- 可按需额外设置hint文字颜色等属性 --> <item name="android:textColorHint">#888888</item> </style>
然后给你的SearchView新增queryHintTextAppearance属性引用该样式即可:
<SearchView android:id="@+id/searchViewBox" android:layout_width="351dp" android:layout_height="49dp" android:elevation="10dp" android:iconifiedByDefault="false" android:queryBackground="@null" android:queryHint="Search text here" <!-- 新增这行,AppCompat库下用app命名空间 --> app:queryHintTextAppearance="@style/CustomSearchViewHintStyle" app:layout_constraintTop_toBottomOf="@+id/titel" />
如果使用的是原生Android框架的SearchView,将命名空间改为android:即可。
方案2:通过代码动态设置
SearchView内部默认包含一个id为search_src_text的EditText控件,直接获取该控件修改属性即可:
Kotlin示例:
val searchView = findViewById<SearchView>(R.id.searchViewBox) val searchEditText = searchView.findViewById<EditText>(androidx.appcompat.R.id.search_src_text) // 第一个参数指定单位为SP,第二个参数为目标字体大小 searchEditText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
Java示例:
SearchView searchView = findViewById(R.id.searchViewBox); EditText searchEditText = searchView.findViewById(androidx.appcompat.R.id.search_src_text); searchEditText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
注意:如果使用非AppCompat的原生SearchView,将id替换为android.R.id.search_src_text即可。
内容的提问来源于stack exchange,提问作者Sander
相关产品推荐
相关产品推荐

