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:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分