首页 > 解决方案 > 如何在 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);

标签: androidandroid-studiosearchview

解决方案


这可能是因为你的字体有这个底部填充。你有没有尝试过:

android:includeFontPadding="false"

另一个可能的问题可能是重力

android:gravity="center"

推荐阅读