AppCompatActivity 去掉标题栏和EditText弹出软键盘遮住输入框问题

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:一直显示键盘(同上).

 

posted @ 2018-01-11 20:53  舞动的心  阅读(1474)  评论(0编辑  收藏  举报