Articles of actionbar

Android L预览版的ActionBar中的ProgressBar

今天,我开始将应用程序移植到Android L预览版,以便在最终产品启动时使其几乎准备就绪。 我发现的一个问题是,我不能在ActionBar上有一个不确定的进度条。 它根本不显示,并在logcat上引发这个错误: E/PhoneWindow﹕ Circular progress bar not located in current window decor 我使用这个代码,它在<4.4: requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setProgressBarIndeterminateVisibility(true); 有没有什么办法让它在Android L再次工作,或者我应该使用外部ProgressBar?

Android使用支持库来支持SearchView

这是我的代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { MenuItem searchItem = menu.findItem(R.id.searchMenuItem); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); // searchView.set searchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(false); } 我的最低API是8。 我有这个编译错误 Call requires API level 11 (current min is 8): android.widget.SearchView#setSearchableInfo 请注意,我无法更改最低的SDK。

从Fragment(ActionBarCompat)中调用getSupportActionBar()时的NullPointerException

我只是从ActionBarSherlock切换到ActionBarCompat,一切都运行良好,直到我遇到这个小错误。 我有一个扩展ActionBarActivity的基本活动,并有3个片段与之关联。 在其中一个片段onAttach方法,我尝试执行此代码: @Override public void onAttach(Activity activity) { super.onAttach(activity); final ActionBar actionBar = ((ActionBarActivity)activity).getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowTitleEnabled(false); actionBar.setTitle(""); } 它工作正常,直到我试图改变我的屏幕方向。 然后我得到这行代码的NullPointerException : actionBar.setHomeButtonEnabled(true); 。 我怎样才能解决这个问题? 编辑: 这是整个错误日志: 06-10 18:53:31.440: E/AndroidRuntime(18586): FATAL EXCEPTION: main 06-10 18:53:31.440: E/AndroidRuntime(18586): Process: com.packagename.appname, PID: 18586 06-10 18:53:31.440: E/AndroidRuntime(18586): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packagename.appname/com.packagename.appname.activities.NewActivity}: java.lang.NullPointerException 06-10 18:53:31.440: E/AndroidRuntime(18586): at […]

如何使溢出popup菜单避免阻碍操作栏?

背景 在我的应用程序中 ,当我更新到新的支持库,并尝试使用棒棒糖时,我注意到一个奇怪的问题:当点击操作栏的溢出button(甚至是新的工具栏类)时,将显示popup菜单在操作栏顶部,隐藏其他操作项目,如: 在这里,隐藏的操作项目是卸载和共享。 问题 我试图避免这个问题,通过ovverriding溢出菜单的风格,但没有任何帮助。 不仅如此,但似乎这是一种有意的行为 ,但是在许多已更新为Material Design的Google应用程序中,这种行为并不成立,正如我在这里所报告的。 我试过了 我已经尝试在我使用的主题中创build这个。 其实我的主题是非常不同的,它的父母是“Theme.AppCompat.Light.NoActionBar”(我使用工具栏作为actionBar),但这个片段也有这个问题,所以我认为如果一个人会解决另一个会太。 无论如何,这是片段: <resources xmlns:tools="http://schemas.android.com/tools"> <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionOverflowMenuStyle" tools:targetApi="21">@style/OverflowMenu</item> </style> <style name="OverflowMenu" parent="@android:style/Widget.Material.PopupMenu.Overflow" tools:targetApi="21"> <item name="android:overlapAnchor">false</item> <item name="android:dropDownVerticalOffset">50dip</item> </style> </resources> 这两个属性都没有改变。 我也试过寻找它如何在支持库中工作,但找不到它。 这个问题 如何制作溢出操作项目的popup菜单以避免隐藏其他项目?

如何开始文本视图的上下文行动栏与默认opions编程方式复制并select所有?

有没有什么办法编程方式启动与文本视图相关联的上下文操作栏,单击button? 它应该包含复制/select全部的默认选项。 基本上,我想显示在我的文本视图和Android默认复制/select所有选项在操作栏上的button单击(而不是长按/双击)的select手柄。 我到目前为止的尝试:尝试使用setCustomActionModeCallback()API,但问题在这里,用户需要长按/双击文本视图为CAB出现。 尝试使用startActionMode()API,但无法find一种方法来保留默认项目..它只是打开一个新的空CAB ..我知道,我可以添加我的自定义副本select所有的代码,并利用这个空的CAB,但我想使用默认的android提供的一个,而不是自己pipe理它。 编辑; 我不能使用EditText。 该视图只需要TextView,而长时间点击将被禁用。 我正在做所有上述更改通过将TextView设置为可选

造型的Androidsearch视图和下拉列表中的操作栏

在我的应用程序中,我有一个显示searchbuild议的search视图。 我想下拉/微调和文字是一个特定的颜色。 目前我能做的唯一变化就是通过以下方式input文本的文本颜色: <style name="MyApp.AutoCompleteTextView" parent="Widget.AppCompat.Light.AutoCompleteTextView"> <item name="android:textColor">@color/white</item> <item name="android:textCursorDrawable">@null</item> <item name="android:background">@color/myBackgroundColor</item> </style> 该应用程序目前显示如下search结果: 我想知道的是我将如何去改变像searchHint颜色,下拉背景和下拉项目文本颜色的部分? 我的目标是API 19+

如何在所有Android版本上显示支持库的ActionBar&Toolbar的阴影?

这是一个简单的问题: 我使用新的支持库,它允许我有一个工具栏实例,甚至将其设置为活动的ActionBar(或使用默认的)。 如何自定义由工具栏(或默认的ActionBar)投射的阴影? 我试图使用“setElevation”(在他们两个),但它似乎没有做任何事情在Android棒棒糖。 此外,我无法find如何自定义前棒棒糖版本上的阴影。 有没有可能的API? 或者至less是一个drawable(即使我尝试过,我没有find)? 好吧,我已经设法find下一件事情: 对于棒棒糖和前棒棒糖,当你的活动使用正常的AppCompat主题(例如“Theme.AppCompat.Light”)时,阴影应该看起来不错。 但是,当您使用“setSupportActionBar”(并使用适当的主题,例如“Theme.AppCompat.Light.NoActionBar”例如),您将有阴影的一些问题。 对于Lollipop之前的版本,您可以在工具栏的下方放置一个FrameLayout,看起来和正常主题的完全一样,就像这样: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/toolbar" android:foreground="?android:windowContentOverlay" android:visibility="@integer/action_bar_shadow_background_visibility" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/toolbar" android:text="@string/hello_world" /> </RelativeLayout> 您可以使用FrameLayout作为您的活动内容,或使用我所做的。 你也可以设置其可见性,把前棒棒糖和2棒棒糖和以上的整数0,如我已经做了“action_bar_shadow_background_visibility”。 这是一个丑陋的解决scheme,但它的工作原理,但只适用于前棒棒糖版本。 在任何情况下,我仍然无法find一个方式来显示棒棒糖的阴影,以防万一我使用“setSupportActionBar”。 我尝试使用工具栏和操作栏上的“setElevation”(在调用“setSupportActionBar”之后使用“getSupportActionBar”)。 我也没有得到如何获得操作栏的标准高度,因为我注意到很多教程都说使用“minHeight”工具栏。 也将欣赏这一点的帮助。 谁能帮我这个? 再说一遍,这就是我所问的: 对于Pre-Lollipop,显示工具栏和ActionBar支持库上使用的相同阴影。 同样的棒棒糖(但使用棒棒糖的那个) 额外:自定义阴影在棒棒糖上更加“微妙”(也许在所有版本上定制)。 额外:为什么工具栏的minHeight得到的是动作栏高度的值,而不是高度本身? 编辑:好的,这是迄今为止我所做的模仿棒棒糖的阴影: <RelativeLayout […]

getSupportActionBar使用FragmentActivity

我在一个项目上使用片段活动,但似乎v4的支持FragmentActivity没有getSupportActionBar()方法,我需要使用支持一个为了使用android.support.v7.app.ActionBar

将ArrayAdapter转换为CursorAdapter以在SearchView中使用

如何将静态数据的ArrayAdapter<String>转换为在SearchView使用Suggestion Listener的CursorAdapter ? 我从静态数据( allString )构造了ArrayAdapter<String> ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString); 我使用它的MultiAutoCompleteTextView在API级别小于11的设备上工作正常 MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter); 然而,我的目标API是级别是11和API> 10我使用一个ActionBar ,我想有一个SearchView。 以下是我所尝试的:它显示了带有embedded式SearchView的ActionBar ,但没有像在MultiAutoCompleteTextView中那样提供任何build议。 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); if (android.os.Build.VERSION.SDK_INT > 10){ inflater.inflate(R.menu.menu11, menu); searchView = (SearchView) menu.findItem(R.id.MENU_SEARCH).getActionView(); int[] to = {0}; CursorAdapter cursorAdapter = new SimpleCursorAdapter(context, R.layout.listitem, null, allBusStopString, to); searchView.setSuggestionsAdapter(cursorAdapter); […]

Android支持工具栏colorControlNormal颜色

我想设置我的微调下降颜色为白色,同时保持其他元素在我的主题默认颜色。 情况如下: <android.support.v7.widget.Toolbar android:layout_height="@dimen/action_bar_height" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:theme="@style/ToolbarTheme.Base" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true"/> </android.support.v7.widget.Toolbar> 而风格是: <!– My base app theme –> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/theme_tint</item> <!– <item name="colorControlNormal">#FFFFFF</item> –> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:typeface">sans</item> <item name="android:windowBackground">@color/background_primary</item> </style> <!– My Toolbar theme –> <style name="ToolbarTheme.Base" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="colorControlNormal">#FFFFFF</item> </style> 如果我在应用程序主题中添加了<item […]