标签: android-actionbar

操纵栏操作按钮显示为下拉项而不是按钮

我试图删除我的一个操作栏项目(设置菜单)并添加另一个,但它没有将正确的图标/操作添加到操作栏.

我的布局文件如下

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:icon="@drawable/settings"
    android:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

我正在这样初始化它

 ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setDefaultDisplayHomeAsUpEnabled(false);
    actionBar.setHomeButtonEnabled(true);
    actionBar.setTitle(mTitle);

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

它显示了三个安卓点而不是我自己的图标(它也将它放在下拉列表中我想要更改红色圆圈中的点 在此输入图像描述 我究竟做错了什么

android android-button android-actionbar

0
推荐指数
1
解决办法
697
查看次数

在ActionBar选项卡上更改图标单击或滑动 - Android

我花了很长时间才得到ActionBar分割中的标签图标ActionBar,以及将标签指示器颜色变为白色.所以现在我需要做的就是在取消选择时用不同的颜色交换图标.所选图标(和指示符)应保持白色.但是怎么样?我用它Android Action Bar Style Generator来制作我的标签,所以我有点紧张的触摸我styles.xml(那里已经有很多东西).我做了一个旧的应用程序,你可以使用一个可绘制的状态选择器xml,但我正在使用TabHost,现在非常贬值,所以我不能再使用它了.但是,如果你知道一个简单的方法来使用drawables文件或我的styles.xml,或者一个点击监听器?我不知道,但我很乐意学习.基本上未选择的图标应该是浅蓝色.

我也使用滑动标签ViewPager,所以当我滑动时,未选中和选择的图标应该是正确的颜色.

更新:原来我不得不将代码添加到我的onTabSelected()onTabUnselected(),然后,像变魔术一样:

 @Override
    public void onTabSelected(ActionBar.Tab tab,
                           android.support.v4.app.FragmentTransaction fragmentTransaction) {
        // When the given tab is selected, switch to the corresponding page in the ViewPager.
        pager.setCurrentItem(tab.getPosition());

        if (tab.getPosition() ==  PHOTO_TAB)
            photo.setIcon(R.drawable.ab_camera);
        else if (tab.getPosition() == VIDEO_TAB)
            video.setIcon(R.drawable.ab_video);
        else if (tab.getPosition() == AUDIO_TAB)
            audio.setIcon(R.drawable.ab_microphone);
        else if (tab.getPosition() == TEXT_TAB)
                text.setIcon(R.drawable.ab_write);

    }

    @Override
    public void onTabUnselected(ActionBar.Tab …
Run Code Online (Sandbox Code Playgroud)

android styles android-layout android-actionbar android-tabs

0
推荐指数
1
解决办法
3689
查看次数

使ActionBar标题为大写

如何将ActionBar标题设为大写?一些答案建议推杆<item name="android:textAllCaps">true</item>,但当我把它放在actionBar样式或actionBar中时,这没有任何效果titleTextStyle.它只有在我使用AppTheme风格时才有效果,但是在我的应用程序中也有很多东西也是我不想要的.

我的风格:

<style name="AppTheme" parent="AppBaseTheme">
    <!-- snip snip -->
    <item name="android:actionBarStyle">@style/NewActionBar</item>
</style>

<style name="NewActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="android:background">@color/text_pink</item> <!-- no effect -->
    <item name="android:titleTextStyle">@style/NewActionBarTitle</item>
    <item name="android:displayOptions">showHome|showTitle</item>
    <item name="android:textAllCaps">true</item> <!-- no effect -->
</style>

<style name="NewActionBarTitle">
    <item name="android:textSize">@dimen/tiny_text_size</item> <!-- no effect -->
    <item name="android:textAllCaps">true</item> <!-- no effect -->
</style>
Run Code Online (Sandbox Code Playgroud)

为什么这些NewActionBarNewActionBarTitle样式似乎无论我放入什么都没有效果?我的风格或动作栏有什么问题或什么?

编辑:我刚刚完全删除了样式NewActionBarNewActionBarTitle(以及在样式中对它们的引用AppTheme),并且操作栏看起来完全相同.所以有些东西被破坏了 会是什么呢?

android android-actionbar android-actionbar-compat

0
推荐指数
1
解决办法
2956
查看次数

Android:无法在Child Fragment的ActionBar中隐藏菜单项

在投票结束或标记为重复之前PS看到问题.已经采取了所有可能的方法来隐藏菜单项但似乎没有工作.

我的options_menu.xml如下

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_search"
      android:title="@string/search_title"
      android:icon="@drawable/ic_action_search"
      android:showAsAction="collapseActionView|ifRoom"
      android:actionViewClass="android.widget.SearchView" />
<item
    android:id="@+id/menu_share"
    android:icon="@android:drawable/ic_menu_share"
    android:showAsAction="always"
    android:title="Share"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

我在ParentFragment上显示此菜单,我在其中隐藏menu_share使用此代码

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

     inflater.inflate(R.menu.options_menu, menu);
    menu.findItem(R.id.menu_share).setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)

这会Share成功隐藏选项.现在这个片段打开了一个新片段,即一个儿童片段.

在这个子片段中,我想隐藏该Search项目并仅显示该Share选项.但是使用相同的代码在这里没有用.

   @Override
public void  onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.options_menu, menu);
    menu.findItem(R.id.menu_search).setVisible(false);

}
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过getActivity().invalidateOptionsMenu();但没有效果,Actionbar总是显示两个菜单项.请帮我弄清楚导致这种情况的原因.

错误日志

E/AndroidRuntime? FATAL EXCEPTION: main
Process: info.androidhive.slidingmenu, PID: 27321
java.lang.NullPointerException
        at info.androidhive.slidingmenu.HomeFragment.onPrepareOptionsMenu(HomeFragment.java:476)
        at android.app.Fragment.performPrepareOptionsMenu(Fragment.java:1794)
        at android.app.FragmentManagerImpl.dispatchPrepareOptionsMenu(FragmentManager.java:1964)
        at android.app.Activity.onPreparePanel(Activity.java:2665)
        at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:540)
        at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:881) …
Run Code Online (Sandbox Code Playgroud)

android menuitem android-fragments android-actionbar oncreateoptionsmenu

0
推荐指数
1
解决办法
1128
查看次数

扩展活动时的工具栏

我需要扩展Activity而不是ActionBarActivity或AppCompatActivity才能使用第三方库.

在所有应用程序中,我一直在使用AppCompatActivity以便在其中轻松添加工具栏,但是如果我扩展Activity,显然我不能这样做.我也很高兴有一个ActionBar:它不一样,但它总比没有好.不过,我不知道怎么做: - /

你对我有什么建议吗?我知道这可能是一个愚蠢的问题,但我只是不知道如何使这项工作......

android android-appcompat android-activity android-actionbar android-toolbar

0
推荐指数
1
解决办法
3603
查看次数

Action Bar空指针异常

我正在尝试更改操作栏的标题,但我有空指针异常,我不是很专家,所以我真的不知道如何捕获异常或正确执行,基本上这是我有的线问题:

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getActionBar().setIcon(R.drawable.profile_banner_orange);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

0
推荐指数
1
解决办法
1865
查看次数

DrawerLayout中的工具栏占据了整个区域?

我一直在尝试使用新的设计库,但我有一个工具栏而不是不赞成使用的操作栏。问题在于工具栏占用了活动中的整个区域。我一直在尝试不同的示例,并用它们替换了布局文件,我尝试了不同的width和height值。我不知道为什么会这样。都没有用!是什么原因造成的?

非常感谢您的帮助。

activity_main.xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                        xmlns:app="http://schemas.android.com/apk/res-auto"
                                        android:id="@+id/drawer_layout"
                                        android:layout_width="match_parent"
                                        android:fitsSystemWindows="true"
                                        android:layout_height="match_parent">
    <include
            android:id="@+id/tool_bar"
            layout="@layout/app_bar"
            ></include>
<RelativeLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

</RelativeLayout>


<android.support.design.widget.NavigationView
        android:id="@+id/nav_draw"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

主要活动 :

 public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {



Toolbar toolbar;
View root;
NavigationView nav_draw;
DrawerLayout drawer_layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);
    root = getLayoutInflater().inflate(R.layout.activity_main, null);
    setContentView(root);

    setupToolbar();

    drawer_layout = (DrawerLayout)findViewById(R.id.drawer_layout);
    nav_draw = (NavigationView) findViewById(R.id.nav_draw);
    nav_draw.setNavigationItemSelectedListener(this);

getSupportFragmentManager().beginTransaction()
        .replace(R.id.container, new Fragment())
        .commit();

}
private void setupToolbar(){
    Toolbar toolbar …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-actionbar android-toolbar

0
推荐指数
1
解决办法
1514
查看次数

类AppCompatActivity中的getSupportActionBar不能应用于android.support.v7.widget.Toolbar

实际上,我将Android应用程序更改为材料设计时出现问题.

我尝试调用getSupportActionbar,但我总是收到错误

getSupportActionBar in class AppCompatActivity cannot be applied to android.support.v7.widget.Toolbar
Run Code Online (Sandbox Code Playgroud)

我的代码是

import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);

    getSupportActionBar(mToolbar);

    getSupportActionBar().setDisplayShowHomeEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

在getSupportActionBar(mToolbar)中抛出错误.

工具栏在toolbar.xml中声明

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Run Code Online (Sandbox Code Playgroud)

你们中的某些人可以帮助我

android android-appcompat android-actionbar material-design

0
推荐指数
1
解决办法
5891
查看次数

如何在动作栏上使用按钮使用碎片?

我想在片段的操作栏上添加按钮.但是我在下面给出的代码上收到错误.

这是我的片段代码,我想在此选项卡的操作栏上添加按钮

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         final View view = inflater.inflate(R.layout.credit_main, container, false);
return view;
    }
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu items for use in the action bar
        MenuInflater inflater = getMenuInflater();

        inflater.inflate(R.menu.search_menu, menu);
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            // action with ID action_refresh was selected
            case R.id.search:
                Toast.makeText(getActivity(), "Refresh selected", Toast.LENGTH_SHORT)
                        .show();
                break;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

}
Run Code Online (Sandbox Code Playgroud)

这里的错误是 …

android button android-fragments android-actionbar

0
推荐指数
2
解决办法
1636
查看次数

Android删除动作栏标题保持工具栏菜单

我需要在我的应用程序中保留选项卡式工具栏,删除操作栏.这就是现在的样子: 在此输入图像描述

但我希望它看起来像这样:

在此输入图像描述

我的代码xml是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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:background="?attr/colorPrimary"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的.java:

public class MyActivity extends AppCompatActivity {
    @Override
       protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_layout);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);

        if (toolbar != null) {
            setSupportActionBar(toolbar);
        }

        viewPager.setAdapter(new SectionPagerAdapter(getSupportFragmentManager()));
        tabLayout.setupWithViewPager(viewPager);
    }

    public class SectionPagerAdapter extends FragmentPagerAdapter {

        public SectionPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) …
Run Code Online (Sandbox Code Playgroud)

java tabs android toolbar android-actionbar

0
推荐指数
1
解决办法
2065
查看次数