Google+ アプリでは、 の右隅の矢印の位置がActionBar
Spinner
、現在表示されている文字列の長さに適応します。たとえば、スピナーの長さは、知人を選んだときよりも家族を選んだときの方が短く見えます。
タイトルの長さに基づいて右隅の矢印を動的に配置するにはどうすればよいですか? 私の推測では、styles.xmlに設定できる属性があり、それを行うことができます。
ここに私のstyles.xmlがあります:
<style name="MyStyle" parent="android:style/Theme.Holo">
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
</style>
<style name="MyDropDownNav" parent="android:style/Widget.Holo.Spinner">
<item name="android:AttributeHere">AttributeValue</item>
</style>
MainActivity.java にあるコードは次のとおりです。
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// Specify a SpinnerAdapter to populate the dropdown list.
SpinnerAdapter dataAdapter = new ArrayAdapter<String>(
actionBar.getThemedContext(),
android.R.layout.simple_list_item_1, android.R.id.text1,
new String[] { "AAAAAAAAAAAAAAA", "BB" });
// Set up the dropdown list navigation in the action bar.
actionBar.setListNavigationCallbacks(dataAdapter, this);
Google+ とは異なり、右隅の矢印の位置は常に固定されています。ドロップダウンから「AAAAAAAAAAAAAAA」から「BB」を選択すると、矢印はまったく動きません。