android 自定义标题栏

styles.xml文件 

<!-- 自定义标题栏 -->

    <stylename="TitleBarBackground">

        <itemname="android:background">#000000</item>

    </style>


    <stylename="MyCustomTheme"parent="android:Theme">

        <itemname="android:windowTitleBackgroundStyle">@style/TitleBarBackground</item>

        <itemname="android:windowTitleSize">36dp</item>

    </style>



AndroidManinfest.xml文件

<activity

            android:name="cn.cus.input.msg.show.CusInPutScanerActivity"

            android:configChanges="orientation|keyboardHidden"

            android:screenOrientation="portrait"

            android:theme="@style/MyCustomTheme"

            android:windowSoftInputMode="stateAlwaysHidden"/>

        <activity




定义导航栏class


public class CustomTitlBar {

private static Activity mActivity;

public static void getTitleBar(Activity activity,String title){

mActivity =activity;  

activity.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);//使用自定义的标题栏 

activity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,  

R.layout.custom_title);  //使用自定义布局

activity.setContentView(R.layout.custom_title); 

TextView textView = (TextView)activity.findViewById(R.id.titleName);  

textView.setText(title);  

Button titleBackBtn = (Button)activity.findViewById(R.id.backB);

titleBackBtn.setOnClickListener(new OnClickListener() {  

@Override

public void onClick(View v) {

// TODO 调取硬件回车键进行实现

mActivity.finish();  

}  

});

Button titleHomeBtn = (Button)activity.findViewById(R.id.homeB);

titleHomeBtn.setOnClickListener(new OnClickListener() {  

@Override

public void onClick(View v) {

// TODO 推送页面到主菜单

Intent intent =new Intent();

intent.setClass(mActivity, MenuActivity.class);

mActivity.startActivity(intent);

mActivity.finish();

}  

});

}

}




在Activity中应用

@Override

protected void onCreate(BundlesavedInstanceState) {

CustomTitlBar.getTitleBar(this,"退货扫描"); //添加在其他布局之前

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_return_back);


对android:configChanges属性,一般认为有以下几点:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法


screenOrientation属性

"landscape"是限制此页面横屏显示, 

"portrait"是限制此页面数竖屏显示。 


windowSoftInputMode各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值