導航:首頁 > 操作系統 > android沉侵式

android沉侵式

發布時間:2023-07-09 04:30:49

『壹』 android WebView載入頁面的輸入框被軟鍵盤遮擋的問題

當實現沉浸式狀態欄時遇到軟體盤遮擋WebView頁面的輸入框的問題,這是實現方式有問題,應該檢查你的實現方式。

1)載入WebView的Activty不能設置為全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.NoActionBar

2)沉浸式狀態欄的實現方式,在Activity的根布局裡加兩個屬性:

android:clipToPadding="true" 設置你的繪制區域在padding裡面

android:fitsSystemWindows="true" 調整view的padding屬性為系統窗口 留出空間

在Activity的onCreate方法裡面設置標題欄為透明,即:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_ST ATUS);

3)Activity裡面不能設置android:windowSoftInputMode的屬性,使用默認的屬性即可

以上3步即可實現沉浸式狀態欄並且能保證你的WebView載入的HTML頁面的輸入框不被軟鍵盤遮擋。



0



0

上一篇 Android Studio在SVN上創建分支

下一篇 Android Converty問題解決方案

相關文章推薦

• android中webview載入html輸入框不能輸入內容問題記錄

• 如何解決Android軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• Android 軟鍵盤蓋住輸入框的問題

• android popupwindow 中輸入框被軟鍵盤彈出擋住問題解決

• ios解決軟鍵盤遮擋輸入框問題

• Android軟鍵盤遮擋輸入框解決方法

參考知識庫

Android知識庫

34080 關注 | 2937 收錄

猜你在找

Android中的五大布局

零基礎學軟體之HTML語言

【Android APP開發】Android高級商業布局快速實現

html5的app開發

Android前沿技術—《軟體框架搭建》

Android移植基礎

html系統學習篇

零基礎學習HTML5—html+css基礎

Android開發之初窺門徑

Android之數據存儲

關閉

『貳』 Android 沉浸式/透明式狀態欄、導航欄

Android 從4.4開始引進透明狀態欄和導航欄的概念,並且在5.0進行了改進,將透明變成了半透明的效果。雖然此特性最早出現在ios,但不否認效果還是很贊的。
至於4.4以下的手機,就不要考慮此特性了,好在4.4以下的手機份額已經非常小了。

我們先來看一下透明狀態欄的實現,兩種常見效果圖如下:

虛擬導航欄並不是所有的手機都有,華為的手機多比較常見,就是上圖屏幕底部按鈕那塊區域。設置導航欄和狀態欄類似:

這是官方的解釋,大致意思就是我們在布局的最外層設置 android:fitsSystemWindows="true",會在屏幕最上方預留出狀態欄高度的padding。

由於fitsSystemWindows屬性本質上是給當前控制項設置了一個padding,所以我們設置到根布局的話,會導致狀態欄是透明的,並且和窗口背景一樣。

但是多數情況,我們並不在根布局設置這個屬性,我們想要的無外乎是讓內容沉浸在狀態欄之中。所以我們經常設置在最上端的圖片背景、Banner之類的,如果是Toolbar的,我們可以使用一層LinearLayout包裹,並把這個屬性設置給LinearLayout,這樣就可以避免Toolbar的內容下沉了。如:

上述方法可以解決普通頁面的透明式狀態欄需求,如有復雜需求可以參考下面這些:
Android 系統狀態欄沉浸式/透明化完整解決方案
Android 沉浸式狀態欄的實現
Android沉浸式狀態欄(透明狀態欄)最佳實現
還有開源庫推薦: ImmersionBar

『叄』 為什麼國內Android應用都不適配沉浸式狀態欄

  1. 4.4及其以上都是可以實現沉浸式狀態欄效果的,5.0及其以上可以直接在主題中設置顏色,也可以調用Window類中的setStatusBarColor(int color)來實現,這兩種方式在5.0上都比較簡單。

  2. 圖片背景的頁面讓狀態欄透明及半透明。

    『肆』 android studio怎麼做沉浸式狀態欄

    studio,中引入沉浸式兼容庫
    compile 『com.readystatesoftware.systembartint:systembartint:1.0.3』
    eclipse,可以導入相應的那個類。
    第一類,兼容actionbar
    第一步:設置activity主題android:theme=」@style/ActionBarTheme」
    <style name="ActionBarTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
    </style>
    <style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/actionbar_bg</item>
    </style>

    第二步:設置狀態欄透明,然後設置狀態欄沉浸的顏色
    @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
    Window win = getWindow();
    WindowManager.LayoutParams winParams = win.getAttributes();
    final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    if (on) {
    winParams.flags |= bits;
    } else {
    winParams.flags &= ~bits;
    }
    win.setAttributes(winParams);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    setTranslucentStatus(true);
    }

    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    tintManager.setStatusBarTintEnabled(true);
    //設置沉浸的顏色 tintManager.setStatusBarTintResource(R.color.statusbar_bg);}

    第三步:設置適應windows,在布局文件設置
    android:fitsSystemWindows=」true」
    如果不設置,應用的ui會頂上去,頂進system ui
    ok
    第二類 沒有actionbar的activity
    第一步,設置主題,android:theme=」@style/FullBleedTheme」
    <style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar">
    <!-- API 14 theme customizations can go here. -->
    </style>
    <style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDecor">
    <!-- API 19 theme customizations can go here. -->
    </style>

    或者
    用toolbar只能設置Theme.AppCompat.NoActionBar主題
    <style name="AppThemeToolbar" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">#2196F3</item>
    <item name="colorPrimaryDark">#2196F3</item>
    <!--<item name="colorPrimaryDark">#1565C0</item>-->
    <item name="colorAccent">#E91E63</item>
    </style>

    第二步:同上一個第二步。
    設置狀態欄透明+顏色
    mTintManager = new SystemBarTintManager(this);
    mTintManager.setStatusBarTintEnabled(true);
    mTintManager.setNavigationBarTintEnabled(true); mTintManager.setStatusBarTintResource(R.color.statusbar_bg);

閱讀全文

與android沉侵式相關的資料

熱點內容
python進階客戶流失 瀏覽:276
華為榮耀10伺服器地址 瀏覽:996
javastring相等判斷 瀏覽:409
程序員考研究生學校 瀏覽:933
java卡頓 瀏覽:500
編程軟體怎麼運行zip文件 瀏覽:505
單片機怎麼做組態 瀏覽:899
android參考文獻外文 瀏覽:684
銅電極電流效率的演算法 瀏覽:142
簡訊內存已滿怎麼處理安卓 瀏覽:312
ogg命令 瀏覽:784
南昌程序員最新消息 瀏覽:151
藍牙編程入門書籍 瀏覽:763
單片機秒錶實驗 瀏覽:411
小米3文件夾設置 瀏覽:565
手動添加dns伺服器加什麼數字 瀏覽:563
單片機中三位數碼管原件 瀏覽:140
pdf可以刪除其中一頁 瀏覽:217
清dns緩存的命令 瀏覽:104
免費pdf在線轉換 瀏覽:770