我有一个问题就是将微调器放在操作栏中。
我在操作栏和活动内容中为旋转器应用相同的DropDownViewResource,但结果不同。
(Action Bar微调器)
(活动微调)
以下是代码:
(活动)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// apply custom layout for action bar
final ActionBar actionBar = getActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.layout_actionbar_stylist_collections);
setContentView(R.layout.activity_stylist_collections);
mCollectionsSpinner = (Spinner) findViewById(R.id.collections_spinner);
setSpinner(mCollectionsSpinner);
mContentSpinner = (Spinner) findViewById(R.id.content_spinner);
setSpinner(mContentSpinner);
}
private void setSpinner(Spinner spinner) {
String[] strList = new String[]{"1", "2", "3", "4", "5"};
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.layout_spinner_item, strList);
dataAdapter.setDropDownViewResource(R.layout.layout_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
}
(操作栏布局:layout_actionbar_stylist_collections)
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/actionbar_bar"
android:orientation="horizontal" >
<Spinner
android:id="@+id/collections_spinner"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:background="@android:color/transparent"/>
</RelativeLayout>
(活动布局:activity_stylist_collections.xml)
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:paddingTop="10dp" >
<Spinner
android:id="@+id/content_spinner"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@android:color/transparent" />
</RelativeLayout>
</LinearLayout>
(Spinner DropDownViewResource:layout_spinner_dropdown_item.xml)
<?xml version="1.0" encoding="UTF-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="#0AA0A0" />
但输出是不同的,这很奇怪。 背景颜色不同。
任何人都知道为什么? 是否有可能由于动作栏风格? 如何使操作栏中的微调器与活动内容中的微调器相同?
提前致谢。 埃里克
答案 0 :(得分:0)
最后我得到了解决方案。 是的,它来自动作栏样式。
原始操作栏样式如下:
<style name="AppBaseTheme" parent="android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/CustomActionBar</item>
</style>
将“AppTheme”父母从“AppBaseTheme”改为“@ style / Theme.Holo.Light”后,问题解决了。
谢谢大家。 埃里克