Android fragments 如何让center成为android中searchView的提示?

Android fragments 如何让center成为android中searchView的提示?,android-fragments,Android Fragments,有人能告诉我如何在中心显示搜索视图提示吗?提前谢谢 要使提示在SearchView上居中,您需要在SearchView中包含的EditText中居中 您可以使用Android Studio Tools->Android->Layout Inspector中的Layout Inspector找到特定视图。单击UI中的搜索视图时,可以看到它有一个SearchView$SearchAutoComplete。这是SearchView中的一个内部类,它扩展了AutoCompleteTextView,后者扩

有人能告诉我如何在中心显示搜索视图提示吗?提前谢谢

要使提示在SearchView上居中,您需要在SearchView中包含的EditText中居中

您可以使用Android Studio Tools->Android->Layout Inspector中的Layout Inspector找到特定视图。单击UI中的搜索视图时,可以看到它有一个SearchView$SearchAutoComplete。这是SearchView中的一个内部类,它扩展了AutoCompleteTextView,后者扩展了EditText。所以,这就是你想要改变的观点。在布局检查器的“属性值”窗格中观察id为id/search\u src\u text,以便可以使用该id获取视图和重心,如下所示:

int id = getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchEditText = (EditText) mSearchView.findViewById(id);
if (searchEditText != null) {
    searchEditText.setGravity(Gravity.CENTER);
}
由于EditText的id没有正式的文档记录,所以在那里会有一个空检查,以防id发生变化或在任何地方都不一致

对于android.support.v7.widget.SearchView,请使用以下命令:

public static void centerHintText(SearchView searchView){
    EditText searchEditText = (EditText) searchView.findViewById(R.id.search_src_text);
        if (searchEditText != null) {
            searchEditText.setGravity(Gravity.CENTER);
        }
}

我遵循了Cody的示例,但我想在上面Cody的回答中补充一点,那就是将找到的视图强制转换为SearchView.SearchAutoComplete公共静态类而不是EditText,因为这是与R.id.search\u src\u text直接关联的视图。如果Android团队决定将继承的EditText类替换为另一个类,这是为了避免将来出现任何问题


请参见此处的关联视图:

要将提示和查询文本居中,请在搜索视图中使用服装样式:

<style name="AppSearchView" parent="Widget.AppCompat.SearchView" >
     <item name="android:textAlignment">center</item>
</style>
<android.support.v7.widget.SearchView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ...
    app:theme="@style/AppSearchView" />
然后将此样式应用于搜索视图:

<style name="AppSearchView" parent="Widget.AppCompat.SearchView" >
     <item name="android:textAlignment">center</item>
</style>
<android.support.v7.widget.SearchView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ...
    app:theme="@style/AppSearchView" />

如果您使用的是androidx。使用此代码

val searchEditText = searchView.findViewById(androidx.appcompat.R.id.search_src_text) as EditText
    searchEditText.gravity = Gravity.CENTER

不清楚你想要什么。请清楚地解释您需要什么,到目前为止您尝试了什么,并将您的代码粘贴到问题中,供其他人查看。这种方法对对齐有效,但阻止了“我的抽屉布局”菜单的显示。在我的情况下,我不得不使用@Danh-Nguyen答案。