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:一直顯示鍵盤(同上).

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM