我该如何定位我的动作条列表导航右侧? [英] How can I position my actionbar list navigation on the right side?

查看:99
本文介绍了我该如何定位我的动作条列表导航右侧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此图像demonstrats什么,我需要做的。我需要在下拉菜单中始终保持在左侧旁溢出菜单图标

我怎样才能做到这一点?

我的styles.xml

 < XML版本=1.0编码=UTF-8&GT?;
<资源的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android>

    <! - 变化对全息光的主题,风格的操作栏 - >
    <样式名称=Theme.AndroidDevelopers父=Theme.Sherlock.Light>
        <项目名称=机器人:actionBarItemBackground> @可绘制/ ad_selectable_background< /项目>
        <项目名称=actionBarItemBackground> @可绘制/ ad_selectable_background< /项目>
        <项目名称=机器人:popupMenuStyle> @风格/ MyPopupMenu< /项目>
        <项目名称=popupMenuStyle> @风格/ MyPopupMenu< /项目>
        <项目名称=机器人:dropDownListViewStyle> @风格/ MyDropDownListView< /项目>
        <项目名称=dropDownListViewStyle> @风格/ MyDropDownListView< /项目>
        <项目名称=机器人:actionBarTabStyle> @风格/ MyActionBarTabStyle< /项目>
        <项目名称=actionBarTabStyle> @风格/ MyActionBarTabStyle< /项目>
        <项目名称=机器人:actionDropDownStyle> @风格/ MyDropDownNav< /项目>
        <项目名称=actionDropDownStyle> @风格/ MyDropDownNav< /项目>
        <项目名称=机器人:listChoiceIndicatorMultiple> @可绘制/ ad_btn_check_holo_light< /项目>
        <项目名称=机器人:listChoiceIndicatorSingle> @可绘制/ ad_btn_radio_holo_light< /项目>

        !<  - <项目名称=机器人:actionOverflowButtonStyle> @风格/ MyOverflowButton< /项目> - >
    < /风格>

    <! - 风格溢出菜单 - >
    <样式名称=MyPopupMenu父=Widget.Sherlock.Light.PopupMenu>
        <项目名称=机器人:popupBackground> @可绘制/ ad_menu_dropdown_panel_holo_light< /项目>
    < /风格>

    <! - 风格溢出菜单中的项目 - >
    <样式名称=MyDropDownListView父=Widget.Sherlock.ListView.DropDown>
        <项目名称=机器人:listSelector> @可绘制/ ad_selectable_background< /项目>
    < /风格>

    <! - 风格的标签 - >
    <样式名称=MyActionBarTabStyle父=Widget.Sherlock.Light.ActionBar.TabBar>
        <项目名称=机器人:背景> @可绘制/ actionbar_tab_bg< /项目>
    < /风格>

    <! - 样式列表导航 - >
    <样式名称=MyDropDownNav父=Widget.Sherlock.Light.Spinner.DropDown.ActionBar>
        <项目名称=机器人:背景> @可绘制/ ad_spinner_background_holo_light< /项目>
        <项目名称=机器人:popupBackground> @可绘制/ ad_menu_dropdown_panel_holo_light< /项目>
        <项目名称=机器人:dropDownSelector> @可绘制/ ad_selectable_background< /项目>

    < /风格>

    <! - 
         以下可用于样式溢出菜单按钮
         只有当你有一个*非常*充分的理由!!做到这一点


     - >
    <! - 
    <样式名称=MyOverflowButton父=Widget.Sherlock.ActionButton.Overflow>
        <项目名称=机器人:SRC> @可绘制/ ic_menu_view< /项目>
        <项目名称=机器人:背景> @可绘制/ action_button_background< /项目>
    < /风格>


     - >

  <样式名称=customRatingBar父=@安卓风格/ Widget.RatingBar>
    <项目名称=机器人:progressDrawable> @可绘制/ custom_ratingbar< /项目>
    <项目名称=机器人:indeterminateDrawable> @可绘制/ money_off< /项目>
     <项目名称=安卓了minHeight> 10dip< /项目>
       <项目名称=安卓了maxHeight> 15dip< /项目>
       <项目名称=机器人:scaleType> centerInside< /项目>

< /风格>
< /资源>
 

解决方案

至于其实现为行动来看一个例子,伊曼纽尔Moecklin是的以下code

 动作条动作条= getSupportActionBar();
    最终的上下文语境= actionBar.getThemedContext();
    最终的String []条目=新的String [] {输入1,输入2,进入3};
    ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(背景下,
            R.layout.sherlock_spinner_item,项);
    adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

    //创建ICS微调
    IcsSpinner微调=新IcsSpinner(本,空,
            R.attr.actionDropDownStyle);
    spinner.setAdapter(适配器);
    spinner.setOnItemSelectedListener(新OnItemSelectedListener(){
        @覆盖
        公共无效onItemSelected(IcsAdapterView<>母公司视图中查看,
                INT位置,长的id){
            Toast.makeText(背景下,项目选择+项[位置]
                    Toast.LENGTH_SHORT).show();
        }

        @覆盖
        公共无效onNothingSelected(IcsAdapterView<>母公司){
        }
    });

    //设置自定义视图
    IcsLinearLayout listNavLayout =(IcsLinearLayout)getLayoutInflater()
            .inflate(R.layout.abs__action_bar_tab_bar_view,NULL);
    LinearLayout.LayoutParams PARAMS =新LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT);
    params.gravity = Gravity.CENTER;
    listNavLayout.addView(微调,则params);
    listNavLayout.setGravity(Gravity.RIGHT); //<  - 对齐微调到
                                                // 对

    //配置操作栏
    actionBar.setCustomView(listNavLayout,新ActionBar.LayoutParams(
            Gravity.RIGHT));
    actionBar.setDisplayShowCustomEnabled(真正的);
 

This image demonstrats what I need to do. I need the dropdown menu to always stay on the left next to the overflow menu icon

How can i do this?

My styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Variation on the Holo Light theme that styles the Action Bar -->
    <style name="Theme.AndroidDevelopers" parent="Theme.Sherlock.Light">
        <item name="android:actionBarItemBackground">@drawable/ad_selectable_background</item>
        <item name="actionBarItemBackground">@drawable/ad_selectable_background</item>
        <item name="android:popupMenuStyle">@style/MyPopupMenu</item>
        <item name="popupMenuStyle">@style/MyPopupMenu</item>
        <item name="android:dropDownListViewStyle">@style/MyDropDownListView</item>
        <item name="dropDownListViewStyle">@style/MyDropDownListView</item>
        <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
        <item name="actionBarTabStyle">@style/MyActionBarTabStyle</item>
        <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
        <item name="actionDropDownStyle">@style/MyDropDownNav</item>
        <item name="android:listChoiceIndicatorMultiple">@drawable/ad_btn_check_holo_light</item>
        <item name="android:listChoiceIndicatorSingle">@drawable/ad_btn_radio_holo_light</item>

        <!-- <item name="android:actionOverflowButtonStyle">@style/MyOverflowButton</item> -->
    </style>

    <!-- style the overflow menu -->
    <style name="MyPopupMenu" parent="Widget.Sherlock.Light.PopupMenu">
        <item name="android:popupBackground">@drawable/ad_menu_dropdown_panel_holo_light</item>
    </style>

    <!-- style the items within the overflow menu -->
    <style name="MyDropDownListView" parent="Widget.Sherlock.ListView.DropDown">
        <item name="android:listSelector">@drawable/ad_selectable_background</item>
    </style>

    <!-- style for the tabs -->
    <style name="MyActionBarTabStyle" parent="Widget.Sherlock.Light.ActionBar.TabBar">
        <item name="android:background">@drawable/actionbar_tab_bg</item>
    </style>

    <!-- style the list navigation -->
    <style name="MyDropDownNav" parent="Widget.Sherlock.Light.Spinner.DropDown.ActionBar">
        <item name="android:background">@drawable/ad_spinner_background_holo_light</item>
        <item name="android:popupBackground">@drawable/ad_menu_dropdown_panel_holo_light</item>
        <item name="android:dropDownSelector">@drawable/ad_selectable_background</item>

    </style>

    <!--
         the following can be used to style the overflow menu button
         only do this if you have an *extremely* good reason to!!


    -->
    <!--
    <style name="MyOverflowButton" parent="Widget.Sherlock.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_menu_view</item>
        <item name="android:background">@drawable/action_button_background</item>
    </style>


    -->

  <style name="customRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable" >@drawable/custom_ratingbar</item>
    <item name="android:indeterminateDrawable">@drawable/money_off</item>
     <item name="android:minHeight">10dip</item>
       <item name="android:maxHeight">15dip</item>
       <item name="android:scaleType">centerInside</item>

</style>
</resources>

解决方案

As an example for implementing it as Action view, "Emanuel Moecklin" is the owner of following Code

ActionBar actionBar = getSupportActionBar();
    final Context context = actionBar.getThemedContext();
    final String[] entries = new String[] { "Entry 1", "Entry 2", "Entry 3" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
            R.layout.sherlock_spinner_item, entries);
    adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

    // create ICS spinner
    IcsSpinner spinner = new IcsSpinner(this, null,
            R.attr.actionDropDownStyle);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(IcsAdapterView<?> parent, View view,
                int position, long id) {
            Toast.makeText(context, "Item selected: " + entries[position],
                    Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(IcsAdapterView<?> parent) {
        }
    });

    // configure custom view
    IcsLinearLayout listNavLayout = (IcsLinearLayout) getLayoutInflater()
            .inflate(R.layout.abs__action_bar_tab_bar_view, null);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
    params.gravity = Gravity.CENTER;
    listNavLayout.addView(spinner, params);
    listNavLayout.setGravity(Gravity.RIGHT); // <-- align the spinner to the
                                                // right

    // configure action bar
    actionBar.setCustomView(listNavLayout, new ActionBar.LayoutParams(
            Gravity.RIGHT));
    actionBar.setDisplayShowCustomEnabled(true);

这篇关于我该如何定位我的动作条列表导航右侧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆