AppCompatActivity 去掉标题栏和EditText弹出软键盘遮住输入框问题
程序员文章站
2022-03-26 17:43:17
此处除掉标题栏,需要注意一点,AppCompactActivity是继承自Activity。然而,AppCompactActivity据查看网上资料得知,其实它貌似没有标题栏,上面显示的标题栏是一个ActionBar控件(PS:即标题栏部分是一个控件,该控件功能还比较强大),因此AppCompact ......
1. AppCompatActivity去掉标题栏
此处除掉标题栏,需要注意一点,AppCompactActivity是继承自Activity。然而,AppCompactActivity据查看网上资料得知,其实它貌似没有标题栏,上面显示的标题栏是一个ActionBar控件(PS:即标题栏部分是一个控件,该控件功能还比较强大),因此AppCompactActivity可以对该控件添加相关返回、许多等类似功能按钮,如果不添加这些按钮看起来就像是一个标题栏。
所以,在网上许多去配置value文件夹中的style.xml文件或者在AndroidManifest.xml文件修改theme属性值都是不能有效去掉标题栏的。这些方法仅仅适用所写类继承自Activity的类。
那么继承自AppCompactActivity的类,在onCreateView中加入以下第一行代码即可有效隐藏标题栏,加入两行即可实现占据全屏功能。(PS:经过楼主自己测试普通浏览滑动界面可以隐藏,但是在某些情况下,比如该界面有一个视频播放功能,点击全屏播放,退出全屏后,标题栏可能又无法隐藏。不过一般情况下,隐藏功能还是没问题的)
getSupportActionBar().hide(); //隐藏标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //实现全屏,隐藏手机顶部时间相关信息显示
参考资料:android开发:activity继承AppCompatActivity 去掉标题栏
2.EditText弹出软键盘遮住输入框问题
具体解释摘抄自一篇网友博客(PS:方便以后自己查阅,原文链接)
在AndroidManifest.xml中对应的Activity配置:android:windowSoftInputMode="adjustResize"(PS:或者换成"stateVisible|adjustResize",此时会强制弹出软盘)
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloworld"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".Main2Activity" android:windowSoftInputMode="adjustResize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"></activity> </application> </manifest>
含义:该页面屏幕内容被压缩,以腾出软键盘的空间.
解释它们的含义:
stateUnspecified:界面没有设置"android:windowSoftInputMode"时的状态.这个状态是弹出有EditText的界面时时不弹出软键盘的,当EditText获取焦点的时候弹出软件盘 stateUnchanged:状态不改变,意思就是和上一个界面相同,上一个界面弹出软键盘,跳转到这个界面时,软键盘也是弹出状态. stateHidden:隐藏键盘,弹出这个界面的时候,不管上个界面是什么状态,这个界面的软键盘都是隐藏的. stateAlwaysHidden:一直隐藏(跟上面的区别未知,试不出来). stateVisible:强制弹出软键盘.跳转到界面后,没有EditText也弹出键盘. stateAlwaysVisible:一直显示键盘(同上).