actionbar-home按键代码中设置显示跟隐藏

今天在做项目的时候,遇到了一个问题,就是要把home在代码中动态显示跟隐藏。现在把方法记录如下

  public void removeBackButton() {
        if (mActionBar == null) {
            return;
        }
        // Remove the back button but continue showing an icon.
        final int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME;
        mActionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME, mask);
        mActivity.getActionBar().setHomeButtonEnabled(false);
    }
/* Vanzo:zhangshuli on: Fri, 17 Apr 2015 18:15:31 +0800
 */
    public void setBackButtonEnable(boolean enable) {
        if (mActionBar == null) {
            return;
        }
        mActivity.getActionBar().setHomeButtonEnabled(enable);
    }
// End of Vanzo: zhangshuli

    public void setBackButton() {
        if (mActionBar == null) {
            return;
        }
        // Show home as up, and show an icon.
        final int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME;
        mActionBar.setDisplayOptions(mask, mask);
        mActivity.getActionBar().setHomeButtonEnabled(true);
    }   

上面代码中

mActionBar.setDisplayOptions(mask, mask);

就是用来设置home按钮显示的,它的具体用法如下

(1)如果只有一个参数,那么它就是直接设定显示项,

如,

int options = DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO;
setDisplayOptions(options);

那么,actionbar就会显示home跟log按钮,也就是,里面添加了谁,谁就显示

(2)如果有两个参数的话

int options = ActionBar.DISPLAY_SHOW_TITLE |ActionBar.DISPLAY_SHOW_HOME ;

int mask = ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM;

getSupportActionBar().setDisplayOptions(options, mask);

如上代码,这时候actionbar会显示home 跟title,其他的不会显示

也就是只有当options在mask中被设置才能被显示,也就是设置为true。

知识补充:

1.ActionBar默认如果没有做任何设置,会显示出一个箭头(DISPLAY_HOME_AS_UP),一个logo(DISPLAY_SHOW_HOME),标题(DISPLAY_SHOW_TITLE)

2.单独设置某项显示方法如下

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowCustomEnabled(true);
getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setDisplayShowTitleEnabled(true);
getActionBar().setDisplayUseLogoEnabled(true);

3.设置各个按钮是否可点击状态

//它好像可以控制home等的点击状态
getActionBar().setHomeButtonEnabled(true);
时间: 2024-10-25 11:58:44

actionbar-home按键代码中设置显示跟隐藏的相关文章

Android如何在java代码中设置margin

习惯了直接在xml里设置margin(距离上下左右都是10dip),如: <ImageView android:layout_margin="10dip" android:src="@drawable/image" /> 只是有些情况下,需要在java代码里来写. API中,android.view.ViewGroup.MarginLayoutParams有个方法setMargins(left, top, right, bottom).可是View本身没

【安卓】在java代码中设置drawableLeft时如何给定合适尺寸?

textView.setCompoundDrawables(drawable, null, null, null);时看不到图片,是因为需要手动给定drawable对应的尺寸,即用drawable.setBounds. 如果该drawable为图片,可直接drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());. 即直接给定图片自身尺寸,此时效果和在xml中给定一样. [安卓]在java

获取屏幕高宽,在代码中设置控件大小的方法

获取屏幕高宽的方法: 1 import android.view.Display; 2 import android.view.WindowManager; 3 WindowManager windowManager = getWindowManager(); 4 Display display = windowManager.getDefaultDisplay(); 5 if(display.getWidth()==480 && display.getHeight()== 272 ||

android 在代码中设置布局居中layout_gravity,layout_margin的方法

在代码中设置布局居中,翻看api可以知道view中有setGravity,setPadding,但是没有直接的setLayoutGravity,setMargin等方法.下面将在代码中实现类似布局中layout_gravity,layout_margin的方法. 可以通过设置view里面的 LayoutParams 设置,而这个LayoutParams是根据该view在不同的GroupView而不同的. 1.代码中设置layout_gravity LinearLayout layoutTop=(

代码中设置 actionbar 上home等图标显示跟隐藏

今天在做项目的时候,遇到了一个问题,就是要把home在代码中动态显示跟隐藏.现在把方法记录如下 我们可以使用 setDisplayOptions(mask, mask); 来设置home按钮显示的,它的具体用法如下 (1)如果只有一个参数,那么它就是直接设定显示项, 如, int options = DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO: setDisplayOptions(options); 那么,actionbar就会显示home跟log按钮,也就是,里面

在代码中设置TextView 的字体颜色

常用的两种方法: 1.在res文件夹下的dimens.xml .styles.xml 或者strings.xml文件中添加<color name = "green">#00ff00</color>标签,或则在res文件夹下新建color.xml文件,在该文件中添加根标签<resource></resource>,再在根标签里添加<color>便签,然后可以在代码中通过以下方式设置: textView.setTextColor(

robotframework代码中设置全局变量

robotframwork中要设置全局变量,有几种方式,我知道的: 1.在代码中通过设置 SET GLOBAL VARIABLE  2.在外部使用建立一个文件,设置Variables,填写要使用的全局变量 第二种案例展示 1.层次展示 python3 目录下的case 下,有文件夹,还有pub.txt 2.pub 中的方法 *** Settings *** Library ../jCacheTest.py *** Keywords *** delkey [Arguments] ${key} ${

在java代码中设置TextView的字体大小,单位设为sp

要实现的效果如标题. 在dimen.xml文件中设置了<dimen name="text_size">18sp</dimen> 开始的时候,通过sizeTv.setTextSize(getResource().getDimension(R.dimen.text_size))进行设置. 此时使用as的同学会发现,as提示的getDimension返回的值即为18sp.看着挺正常的. 但是跑出来的实际效果,会比在布局文件中直接设置18sp的字体来的大!! 暂时没去弄

iOS8中设置状态栏的隐藏

在Info.plist中添加 key:“Status bar is initially hidden”,设置为yes 则在启动app时显示的LaunchScreen界面隐藏状态栏,反之不显示. 在Info.plist中添加 key:“View controller-based status bar appearance“设置为yes则在app运行过程中显示状态栏,反之不显示.如需在不同的vc下设置状态栏显示或者隐藏可通过以下代码实现: //该行代码只在操作了第二步才有作用[[UIApplicat