导航:首页 > 操作系统 > 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沉侵式相关的资料

热点内容
铜电极电流效率的算法 浏览:140
短信内存已满怎么处理安卓 浏览:312
ogg命令 浏览:784
南昌程序员最新消息 浏览:151
蓝牙编程入门书籍 浏览:763
单片机秒表实验 浏览:411
小米3文件夹设置 浏览:565
手动添加dns服务器加什么数字 浏览:562
单片机中三位数码管原件 浏览:140
pdf可以删除其中一页 浏览:216
清dns缓存的命令 浏览:103
免费pdf在线转换 浏览:770
堆货算法 浏览:881
vsc编译vc程序 浏览:199
centos55命令 浏览:711
美国干编程有什么条件 浏览:507
阿里云服务器远程链接 浏览:251
墨镜慧眼怎么下载厂商的app 浏览:63
iphone加密专线 浏览:493
aes产生加密文件 浏览:417