我该如何定位我的动作条列表导航右侧? [英] How can I position my actionbar list navigation on the right side?
本文介绍了我该如何定位我的动作条列表导航右侧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此图像demonstrats什么,我需要做的。我需要在下拉菜单中始终保持在左侧旁溢出菜单图标
我怎样才能做到这一点?
我的styles.xml
< XML版本=1.0编码=UTF-8&GT?;
<资源的xmlns:机器人=http://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屋!
查看全文