在动作栏android上添加了额外的微调器

时间:2013-11-28 06:24:13

标签: android android-actionbar

我已经编写了一个代码,可以使用自定义视图在操作栏上添加两个微调器。它会好的,但是左边会添加一个额外的微调器。不知道为什么?请帮忙。

这是img:

enter image description here

    mActionBar = getActionBar();
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    mActionBar.setCustomView(R.layout.action_bar);
    mActionBar.setDisplayShowTitleEnabled(false);
    mActionBar.setDisplayShowCustomEnabled(true);
    mActionBar.setDisplayUseLogoEnabled(false);
    mActionBar.setDisplayShowHomeEnabled(false);            


    spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.list, android.R.layout.simple_dropdown_item_1line);

                ((Spinner)mActionBar.getCustomView().findViewById(R.id.action_bar_spinner_collection_detail)).setAdapter(spinnerAdapter);
                ((Spinner)mActionBar.getCustomView().findViewById(R.id.action_bar_spinner_collection_detail1)).setAdapter(spinnerAdapter);

我的xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
android:weightSum="2">

<Spinner
android:id="@+id/action_bar_spinner_collection_detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
>
</Spinner>

<Spinner
 android:id="@+id/action_bar_spinner_collection_detail1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_weight="1" >
</Spinner>
</LinearLayout>

提前致谢。

  [1]: http://i.stack.imgur.com/GRtiQ.png

3 个答案:

答案 0 :(得分:0)

正因为如此。
您的操作栏导航模式设置为LIST_NAVIGATION
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
这是导航的微调器

你还要求Windows功能 - 自定义标题吗?

答案 1 :(得分:0)

请从XML文件的线性布局中删除android:weightSum = "2"

答案 2 :(得分:0)

ActionBar.NAVIGATION_MODE_LIST
    gives you a free spinner that is of no use to you.
(unless you have only one!, even then it has a hidden id).
NEVER use ActionBar.NAVIGATION_MODE_LIST or onNavigationItemSelected (witch only operates on the LAST entrty)
    use:
             final ActionBar bar = getActionBar();
             bar.setDisplayShowCustomEnabled(true);
             bar.setCustomView(R.layout.action_bar_custom);

定义所有的微调器。