Android 无法使用自定义样式将微调器中的文本居中
Android not able to center text inside spinner using custom style
我有一个 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 中将项目居中,请创建一个自定义布局并将 TextView 与 android:gravity="center"
居中,如下面的 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);
我有一个 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 中将项目居中,请创建一个自定义布局并将 TextView 与 android:gravity="center"
居中,如下面的 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);