微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 无法使用自定义样式在微调器中居中文本

如何解决Android 无法使用自定义样式在微调器中居中文本

我有一个 SearchableSpinner,我想在它的中心显示文本

   <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
     
       <com.toptoche.searchablespinnerlibrary.SearchableSpinner
                        android:id="@+id/spinner_client"
                        style="@style/spinner_style_v2"
                        android:layout_width="300dp"
                        android:layout_height="wrap_content"
                        android:padding="5dp"
                        android:drawSelectorOnTop="true"/>


     </LinearLayout>

这里是自定义样式。我尝试添加 <item name="android:textAlignment">center</item> 但它不起作用我也尝试过 <item name="android:paddingTop">10dp</item> 看看文字是否会移动到底部,但它不会移动。

<style name="spinner_style_v2">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:background">@drawable/gradient_spinner</item>
        <item name="android:popupBackground">#DFFFFFFF</item>

</style>

微调适配器

try {
    if (clientList != null && clientList.size() > 0) {
        ArrayAdapter<Client> clientArrayAdapter = new ArrayAdapter<Client>(getApplicationContext(),R.layout.support_simple_spinner_dropdown_item,clientList);
        clientArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        clientSpinner.setAdapter(clientArrayAdapter);
        clientSpinner.setTitle("Choose Client");
    }
} catch (Exception ex) {
    Log.d(TAG,ex.toString());
}

解决方法

要在 Spinner 中居中项目,请创建自定义布局并使用 android:gravity="center" 居中 TextView,如下面的 XML:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
</TextView>

并在您的 Java 代码中将此布局用作 @LayoutRes 在您的适配器中:

ArrayAdapter<Client> clientArrayAdapter = new ArrayAdapter<Client>(getApplicationContext(),R.layout.simple_text,clientList);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。