Tag: android actionbar

dynamic地更改ActionBar中的图标

我有一个Activity有一个ActionBar但我需要dynamic地更改ActionBar上的图标,我有一个暂停和一个播放button,我需要用暂停buttonreplace播放button,当用户点击它。 我search了,我发现它: @Override public boolean onCreateOptionsMenu(Menu menu) { if(DEBUG) Log.i("onCreateOptionsMenu()", "onCreateOptionsMenu() -> LogicAnalizerView"); //menu.add("").setIcon(R.drawable.pause).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actionbarlogic, menu); menu.removeItem(R.id.pauseLogic); return true; } 所以通过这种方式,我删除了暂停button,我也可以添加它,但只有当我启动Activity并且绘制了ActionBar时才会发生。 我如何强制重新绘制ActionBar ? 而且,这样整个ActionBar被重新绘制。 是对的吗? 有什么办法只重绘我想要的button/图标? 谢谢 :)

在ActionBar上放置一个progressBar

我试图把一个不确定的ProgressBar放在actionBar上。 例如,我正在使用actionView将progressBar放入Google+应用中。 <item android:id="@+id/menu_progress" android:actionLayout="@layout/action_progress" android:menuCategory="container" android:showAsAction="always"> </item> 问题是,进度条被视为一个项目,因此在Nexus S肖像模式下,我只有一个在Google+上的其他项目,我可以看到两个项目加上progressBar。 怎么可能把一个进度条使用android操作栏?

顶部的ActionBar上的Android导航抽屉

我正在尝试使滑动到右侧像这个应用程序的操作栏上的导航抽屉:[Removed] 这是我的主要活动的布局: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout …> <RelativeLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> … </RelativeLayout> <fragment android:name="com…." android:layout_gravity="start" android:id="@id/navigation" android:layout_width="@dimen/navigation_menu_width" android:layout_height="fill_parent" /> </android.support.v4.widget.DrawerLayout> 一些其他问题在stackoverflow是类似的这个问题,但所有的答案都build议使用滑动菜单库。 但这个应用程序,他们仍然使用android.support.v4.widget.DrawerLayout,他们成功。 不要问我怎么知道他们使用标准的导航抽屉,但我确定。 将非常感谢您的帮助。 这是最终的解决scheme :非常感谢@Peter Cai这是完美的工作。 https://github.com/lemycanh/DrawerOnTopActionBar

我们应该用ToolBarreplaceAction Bar吗?

自从添加到Support v7库以来,我一直在使用ToolBar 。 我想我用得很好。 但有一点我不明白。 为什么Google会创build这样一个小部件? 我的意思是我们可以做任何ToolBar可以通过使用ActionBar做。 为什么我们必须使用ToolBar ? 如果有的话, ToolBar优于ActionBar ? 是否有必要通过ToolBarreplaceActionBar ? 任何提示都表示赞赏。 并提前感谢。 PS:我发现ToolBar是ViewGroup一个变种。 那么,我们怎么能像Layout一样使用ToolBar呢? 有人可以发布一些代码吗?

操作栏图标大小

根据操作栏图标 mdpi屏幕的操作栏图标应为24 x 24像素,但操作栏图标包为mdpi是32 x 32像素。 尺寸与其他屏幕尺寸不匹配。 那么哪一个是正确的,动作栏图标应具有哪些尺寸?

工具栏中的材料“closures”button而不是后退

我已经在Google的收件箱应用程序中看到,在工具栏中创build一个新的电子邮件,而不是后退button(箭头),它有一个“closures”button(见图片)。 我怎样才能做到这一点?

ActionBar向上导航重新创build父活动,而不是onResume

我使用上推导航的推荐方法,我的代码如下所示: @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Intent h = new Intent(ShowDetailsActivity.this, MainActivity.class); h.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(h); return true; default: return super.onOptionsItemSelected(item); } } 这是用例: 我启动我的应用程序,这是“MainActivity” 我点击一个button去“ShowDetailsActivity” 我点击UP的ActionBar导航 问题出在我点击UP之后,MainActivity再次触发了onCreate()方法,失去了所有状态,而不是像典型的onResume()那样开始,就像从ShowDetailsActivity调用“finish()”一样。 为什么? 这是如何总是工作,这是Android的预期行为重新创build导航到使用“向上”导航方法的所有活动? 如果我点击后退button,我会得到预期的onResume生命周期。 这是我的解决scheme,如果Android“适当”的不存在: @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Intent upIntent = new Intent(this, MainActivity.class); […]

如何解决getActionBar方法可能会产生java.lang.NullPointerException

我在工作中使用工具栏作为我的操作栏。 我试图添加方法getActionBar().setDisplayHomeAsUpEnabled(true); 到旧版设备的向上导航的Activity.java文件。 该方法在Android Studio中产生以下错误消息: 方法调用可能会产生java.lang.NullPointerException 工具栏上的导航工具在新设备上工作正常…现在我想弄清楚如何确保它适用于较旧的设备。 请指教。 从build.gradle: dependencies { compile "com.android.support:appcompat-v7:22.1.0" } 从AndroidManifest.xml: android:theme="@style/Theme.AppCompat.NoActionBar.FullScreen" 从styles.xml中 <style name="Theme.AppCompat.NoActionBar.FullScreen" parent="AppTheme"> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> 来自Activity.java public class CardViewActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cardviewinput); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { // Up navigation to […]

如何在onPrepareOptionsMenu切换菜单条目时刷新ActionBar?

在我的应用程序中,我经常启用/禁用菜单条目,并使它们从onPrepareOptionsMenu可见。 今天,我开始在我的一些Android 2.x应用程序中添加android:showAsAction菜单属性,以显示ActionBar上最常用的菜单条目。 ActionBar不立即反映启用/禁用和可见性。 我需要点击右边的菜单下拉菜单,看看发生了什么变化。 好的,我明白,菜单会触发onPrepareOptionsMenu。 但是,我需要做什么来刷新ActionBar? 我认为这个改变需要从onOptionsItemSelected内部应用,但是我不知道该怎么调用。 这里是菜单: <item android:icon="@drawable/ic_menu_mapmode" android:id="@+id/men_mapview" android:showAsAction="ifRoom|withText" android:title="@string/txt_mapview" /> <item android:icon="@drawable/ic_menu_mapmode" android:id="@+id/men_satelliteview" android:showAsAction="ifRoom|withText" android:title="@string/txt_satelliteview" /> 这是onPrepareOptionsMenu: @Override public boolean onPrepareOptionsMenu(final Menu menu) { MenuItem menuItemMapView = menu.findItem(R.id.men_mapview); MenuItem menuItemSatelliteView = menu.findItem(R.id.men_satelliteview); if (mapView.isSatellite()) { menuItemMapView.setEnabled(true).setVisible(true); menuItemmenuItemSatelliteView.setEnabled(false).setVisible(false); } else { menuItemMapView.setEnabled(false).setVisible(false); menuItemmenuItemSatelliteView.setEnabled(true).setVisible(true); } return super.onPrepareOptionsMenu(menu); } 这是onOptionsItemSelected @Override public boolean […]

添加后退button到操作栏

我一直在试图添加一个后退button到操作栏。 我希望我的观点如下所示: 我想添加操作栏左侧的后退button。 我添加了这个代码 ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); 但它不起作用。 我怎样才能解决这个问题?