如何在 SearchView 中垂直居中查询提示文本
how to vertically center query hint text within SearchView
我在我的 searchView 文本上设置了自定义字体,但在那之后我的查询提示文本稍微向上倾斜,我如何将它垂直居中??
我的xml文件
<RelativeLayout
android:id="@+id/relativelayout1"
android:layout_width="@dimen/_250sdp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginLeft="@dimen/_16sdp"
android:layout_marginRight="@dimen/_8sdp"
android:background="@drawable/searchview_bg"
app:layout_constraintBottom_toTopOf="@id/relativelayout2"
app:layout_constraintEnd_toStartOf="@id/notification_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.SearchView
android:id="@+id/search_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
app:iconifiedByDefault="false"
app:queryBackground="@android:color/transparent"
app:queryHint="Search"
app:searchIcon="@drawable/ic_search" />
<ImageView
android:id="@+id/filter_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_filter"
android:layout_marginRight="@dimen/_8sdp"
android:layout_centerInParent="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
我的java文件
Typeface tf = ResourcesCompat.getFont(getContext(),R.font.poppins);
searchView = getActivity().findViewById(R.id.search_bar);
searchText = (TextView)searchView.findViewById(androidx.appcompat.R.id.search_src_text);
searchText.setTypeface(tf);
可能是因为你的字体有这个底边距。你试过了吗:
android:includeFontPadding="false"
另一个可能的问题是重力
android:gravity="center"
我在我的 searchView 文本上设置了自定义字体,但在那之后我的查询提示文本稍微向上倾斜,我如何将它垂直居中??
我的xml文件
<RelativeLayout
android:id="@+id/relativelayout1"
android:layout_width="@dimen/_250sdp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginLeft="@dimen/_16sdp"
android:layout_marginRight="@dimen/_8sdp"
android:background="@drawable/searchview_bg"
app:layout_constraintBottom_toTopOf="@id/relativelayout2"
app:layout_constraintEnd_toStartOf="@id/notification_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.SearchView
android:id="@+id/search_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
app:iconifiedByDefault="false"
app:queryBackground="@android:color/transparent"
app:queryHint="Search"
app:searchIcon="@drawable/ic_search" />
<ImageView
android:id="@+id/filter_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_filter"
android:layout_marginRight="@dimen/_8sdp"
android:layout_centerInParent="true"
android:layout_alignParentRight="true" />
</RelativeLayout>
我的java文件
Typeface tf = ResourcesCompat.getFont(getContext(),R.font.poppins);
searchView = getActivity().findViewById(R.id.search_bar);
searchText = (TextView)searchView.findViewById(androidx.appcompat.R.id.search_src_text);
searchText.setTypeface(tf);
可能是因为你的字体有这个底边距。你试过了吗:
android:includeFontPadding="false"
另一个可能的问题是重力
android:gravity="center"