如何右对齐 Android 微调器
How to right-align Android spinner
我正在尝试右对齐 Android 微调器的文本。我已经通过 Stack Overflow 并尝试了推荐的解决方案,但它对我不起作用,所以我对自己做错了什么感到有点困惑。我的感觉是,由于我犯了一个错误,我的布局没有被正确拾取。
我的 activity.xml 文件
<Spinner
android:id="@+id/spinnerStoreType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
在 res\layout 下,我创建了一个名为 simple_spinner_item.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="wrap_content"
android:textSize="40sp"
android:textColor="#FFFFFF"
android:padding="10dip"
android:gravity="right"
/>
最后,在我的 activity 中,我使用如下:
spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.transaction_store_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinnerStoreType.setAdapter(adapter);
所以,我相信正在使用的 simple_spinner_item 是默认的,Android 的。我不清楚如何让它使用我的自定义。我以为如果它具有相同的名称,它会自动发生?
非常感谢您一如既往的帮助。
android.R.layout.simple_spinner_item
指的是 android 库中的微调项,不会有您的自定义属性。您应该使用 R.layout.simple_spinner_item
.
来引用您的 own 布局
您完全可以使用样式来实现这一点。我认为这是最好的方式。
这是我的 styles.xml-
中的代码
<style name="AppTheme.Spinner">
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
</style>
<style name="SpinnerItem">
<item name="android:gravity">right|center_vertical</item>
<item name="android:paddingRight">16dp</item>
</style>
<style name="SpinnerDropDownItem">
<item name="android:gravity">right|center_vertical</item>
<item name="android:paddingRight">16dp</item>
</style>
这里是微调器的实现-
<Spinner
android:id="@+id/type"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@id/title"
android:entries="@array/data"
android:theme="@style/AppTheme.Spinner" />
如果您想将 android.R.layout.simple_spinner_item
用作微调项,请添加 spinnerStoreType.setGravity(Gravity.RIGHT)
到您的 java 右对齐代码。所以,您的代码可以像这样:
spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
spinnerStoreType.setGravity(Gravity.RIGHT);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.transaction_store_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinnerStoreType.setAdapter(adapter);
我正在尝试右对齐 Android 微调器的文本。我已经通过 Stack Overflow 并尝试了推荐的解决方案,但它对我不起作用,所以我对自己做错了什么感到有点困惑。我的感觉是,由于我犯了一个错误,我的布局没有被正确拾取。
我的 activity.xml 文件
<Spinner
android:id="@+id/spinnerStoreType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
在 res\layout 下,我创建了一个名为 simple_spinner_item.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="wrap_content"
android:textSize="40sp"
android:textColor="#FFFFFF"
android:padding="10dip"
android:gravity="right"
/>
最后,在我的 activity 中,我使用如下:
spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.transaction_store_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinnerStoreType.setAdapter(adapter);
所以,我相信正在使用的 simple_spinner_item 是默认的,Android 的。我不清楚如何让它使用我的自定义。我以为如果它具有相同的名称,它会自动发生?
非常感谢您一如既往的帮助。
android.R.layout.simple_spinner_item
指的是 android 库中的微调项,不会有您的自定义属性。您应该使用 R.layout.simple_spinner_item
.
您完全可以使用样式来实现这一点。我认为这是最好的方式。 这是我的 styles.xml-
中的代码 <style name="AppTheme.Spinner">
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
</style>
<style name="SpinnerItem">
<item name="android:gravity">right|center_vertical</item>
<item name="android:paddingRight">16dp</item>
</style>
<style name="SpinnerDropDownItem">
<item name="android:gravity">right|center_vertical</item>
<item name="android:paddingRight">16dp</item>
</style>
这里是微调器的实现-
<Spinner
android:id="@+id/type"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@id/title"
android:entries="@array/data"
android:theme="@style/AppTheme.Spinner" />
如果您想将 android.R.layout.simple_spinner_item
用作微调项,请添加 spinnerStoreType.setGravity(Gravity.RIGHT)
到您的 java 右对齐代码。所以,您的代码可以像这样:
spinnerStoreType = (Spinner) findViewById(R.id.spinnerStoreType);
spinnerStoreType.setGravity(Gravity.RIGHT);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this,
R.array.transaction_store_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinnerStoreType.setAdapter(adapter);