iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android开发之WebView输入框提示解决办法
  • 111
分享到

Android开发之WebView输入框提示解决办法

android开发webviewAndroid 2022-06-06 08:06:49 111人浏览 薄情痞子
摘要

做基于WEBView应用时,页面上有一个输入框,当输入的文字过多时,超过输入框的行数时,输入框能够滚动,这时间问题来了,输入的提示箭头会移动到输入框外,如何解决这个问题呢,查找

做基于WEBView应用时,页面上有一个输入框,当输入的文字过多时,超过输入框的行数时,输入框能够滚动,这时间问题来了,输入的提示箭头会移动到输入框外,如何解决这个问题呢,查找chromium源码如下:


void LoadIfNecessary(jobject context) {
if (loaded_)
return;
loaded_ = true;
TRACE_EVENT0("browser", "HandleResources::Create");
JNIEnv* env = base::Android::AttachCurrentThread();
if (!context)
context = base::android::GetApplicationContext();
left_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getLeftHandleBitmap(env, context));
right_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getRightHandleBitmap(env, context));
center_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getCenterHandleBitmap(env, context));
left_bitmap_.setImmutable();
right_bitmap_.setImmutable();
center_bitmap_.setImmutable();
drawable_horizontal_padding_ratio_ =
Java_HandleViewResources_getHandleHorizontalPaddingRatio(env);
}

这个函数加载这几个图片,在java端,


private static Bitmap getHandleBitmap(Context context, final int[] attrs) {
// TODO(jdduke): Properly derive and apply theme color.
TypedArray a = context.getTheme().obtainStyledAttributes(attrs);
final int resId = a.getResourceId(a.getIndex(0), 0);
final Resources res = a.getResources();
a.recycle();
final Bitmap.Config config = Bitmap.Config.ARGB_8888;
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inPreferredConfig = config;
Bitmap bitmap = BitmapFactory.decodeResource(res, resId, options);
savePic( bitmap);
if (bitmap != null) return bitmap;
// If themed resource lookup fails, fall back to using the Context's
// resources for attribute lookup.
if (res != context.getResources()) {
bitmap = BitmapFactory.decodeResource(context.getResources(), resId, options);
if (bitmap != null) return bitmap;
}
Drawable drawable = getHandleDrawable(context, attrs);
assert drawable != null;
final int width = drawable.getIntrinsicWidth();
final int height = drawable.getIntrinsicHeight();
Bitmap canvasBitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(canvasBitmap);
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);
return canvasBitmap;
}

c++中会调用java中的函数getHandleBitmap,这个函数通过 context.getTheme().obtainStyledAttributes 这个函数,从jdk中加载图片资源,显示时,通过GetBitmap函数获取到图像信息,通过layer_->SetBitmap( bitmap)设置显示的内容,函数如下:


const SkBitmap& GetBitmap(ui::TouchHandleOrientation orientation) {
DCHECK(loaded_);
switch (orientation) {
case ui::TouchHandleOrientation::LEFT:
return left_bitmap_;
case ui::TouchHandleOrientation::RIGHT:
return right_bitmap_;
case ui::TouchHandleOrientation::CENTER:
return center_bitmap_;
case ui::TouchHandleOrientation::UNDEFINED:
NOTREACHED() << "Invalid touch handle orientation.";
};
return center_bitmap_;
}

这么分析下来,想从显示下手解决这个问题,似乎不太可能,那只有替换图片资源,而图像资源是在android.jar包中,还有其他办法吗? 分析源码,


public static Drawable getLeftHandleDrawable(Context context) {
return getHandleDrawable(context, LEFT_HANDLE_ATTRS);
}
public static Drawable getCenterHandleDrawable(Context context) {
return getHandleDrawable(context, CENTER_HANDLE_ATTRS);
}
public static Drawable getRightHandleDrawable(Context context) {
return getHandleDrawable(context, RIGHT_HANDLE_ATTRS);
}

有这几个图像id 信息,是不是可以重载呢,于是添加自己的


<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme">
<item name="android:textSelectHandleLeft">@drawable/ic_launcher</item>
<item name="android:textSelectHandle">@drawable/aa</item>
<item name="android:textSelectHandleRight">@drawable/ic_launcher</item>
</style>
</resources>

替换掉系统的资源,再添加android:theme="@style/MyTheme" 自己的主题风格,问题解决

您可能感兴趣的文章:Android自动提示控件AutoCompleteTextViewAndroid中AutoCompleteTextView自动提示Android仿百度谷歌搜索自动提示框AutoCompleteTextView简单应用示例Android AutoCompleteTextView自动提示文本框实例代码Android AutoCompleteTextView连接数据库自动提示的方法(附demo源码下载)android开发 eclipse alt+”/”自动提示失效的解决方法Android实现动态显示或隐藏密码输入框的内容android输入框与文本框加滚动条scrollview示例Android输入法弹出时覆盖输入框问题的解决方法Android登陆界面实现清除输入框内容和震动效果Android输入框控件ClearEditText实现清除功能Android的支付密码输入框实现浅析Android编程实现输入框动态自动提示功能


--结束END--

本文标题: Android开发之WebView输入框提示解决办法

本文链接: https://www.lsjlt.com/news/24891.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android开发中怎么实现一个输入框提示功能
    这篇文章给大家介绍Android开发中怎么实现一个输入框提示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可以使用cursor来动态加载AutoCompleteTextView的数据,从而 实现时时搜索提示,要实现...
    99+
    2023-05-31
    android roi
  • JavaScript组件开发之输入框加候选框的示例分析
    这篇文章主要为大家展示了“JavaScript组件开发之输入框加候选框的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript组件开发之输入...
    99+
    2024-04-02
  • Android studio老版本不显示代码提示的解决办法
    遇到的问题 大三上安卓课时,老师建议从安卓中文社区下载老版本的Android studio 3.5.2入门,据说是工程配置时下载速度比最新版的稍微快一点,但是在下载之后发现了一个问题,当安装老版本的A...
    99+
    2023-09-26
    android studio android ide
  • Android开发之基于DialogFragment创建对话框的方法示例
    本文实例讲述了Android基于DialogFragment创建对话框的方法。分享给大家供大家参考,具体如下:public class FragmentAlertDialog extends Activity { private Butt...
    99+
    2023-05-30
    android dialogfragment 对话框
  • windows10翻开软件时总要提示解决办法
    windows10用户发现自己每次翻开软件总会弹出提示,感觉这样很麻烦,那么应该怎样封闭呢?先翻开操控面板,顺次进入体系和安全、安全和保护,之后点击“更改用户帐户操控设置”,在翻开的界面中将滑块滑到从不告诉那一侧,这样就相当于是封闭告诉音讯...
    99+
    2023-07-10
  • Android开发中的错误及解决办法总结
    目录一 概述二 错误类2.1 Cannot inline bytecode built with JVM target 1.82.2 Unable to find EOCD sign...
    99+
    2024-04-02
  • PHP开发框架laravel代码提示问题怎么解决
    这篇文章主要介绍“PHP开发框架laravel代码提示问题怎么解决”,在日常操作中,相信很多人在PHP开发框架laravel代码提示问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP开发框架la...
    99+
    2023-06-30
  • cmd中输入“net start mysql”提示错误的解决方法
    这篇文章主要介绍cmd中输入“net start mysql”提示错误的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在DOS窗口、gitbush以及一些可以使用的命令行工具...
    99+
    2024-04-02
  • 电脑无法开机提示No bootable device的解决办法
    出现“No bootable device”的错误提示意味着电脑无法找到可启动的设备(如硬盘、光驱等)。以下是一些常见的解决办法:1...
    99+
    2023-09-05
    电脑
  • windows微软输入法突然不显示选字框如何解决
    本篇内容主要讲解“windows微软输入法突然不显示选字框如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows微软输入法突然不显示选字框如何解决”吧!微软输入法突然不显示选字框解...
    99+
    2023-07-02
  • win11电脑输入法打字不显示选字框如何解决
    今天小编给大家分享一下win11电脑输入法打字不显示选字框如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。如果是微软输...
    99+
    2023-07-02
  • JS如何解决移动web开发手机输入框弹出的问题
    这篇文章主要介绍JS如何解决移动web开发手机输入框弹出的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在移动web开发中和pc端不同的是,手机的输入是软键盘,这样就会有个问题,...
    99+
    2024-04-02
  • Android开发:adb调试显示adb.e unknown command device解决方法
    adb调试问题 步骤端口占用1、查找adb server的端口号2、查找对应端口号被哪个进程占用3、查找进程号的进程名4、杀掉对应的进程5、重新查看 adb连接手机调试显示adb....
    99+
    2023-09-12
    android
  • Win10系统显示器屏幕提示输入不支持的多种解决方法
    如果你的Windows 10系统显示器屏幕提示输入不支持,可能是由于以下几个原因导致的:分辨率设置不正确、刷新率设置不正确、显示器驱...
    99+
    2023-09-17
    win10
  • java开发管理者们常犯之错误与解决办法
     管理一支软件开发队伍无疑是一项艰巨的任务。而一旦在管理工作中囊括了组织结构职务(包括职业生涯发展与人力资源管理等)乃至团队业绩责任制度,其难度又会更度攀升至新的量级。在这种情况下,管理者需要深刻理解其日常业绩表现,从而评估自身工作成效并推...
    99+
    2023-06-03
  • Win8系统中IE浏览器弹出剪切板提示框的解决办法
    有用户在Win8系统操作中遇到这样的问题,每次打开IE浏览器都会出现IE剪贴板提示框,下面小编就给大家介绍下Win8系统关闭IE剪切板提示框的方法。有需要的朋友快来了解一下吧。  Win8系统中IE浏览器弹出剪...
    99+
    2023-05-19
    Win8 IE浏览器 剪切板
  • Win7系统CMD命令提示符输入中文变乱码的解决方法
    Win7系统下经常使用CMD命令提示符,此功能强大,可以进行很多操作,不过有时发现Win7旗舰版系统在CMD命令提示符不能输入文字,输入的中文字都变成乱码,该怎么办呢?下面我们的小编就带来Win7系统CMD命令提示符输入...
    99+
    2023-05-19
    Win7系统 CMD命令 命令提示符 中文变乱码
  • Win10开机提示桌面位置不可用的三种解决办法
    Win10系统开机显示:位置不可用,C:\Windows\system32\config\systemprofile\Desktop不可用。如果该位置位于这台电脑上,请确保设置或驱动器已连接,或者光盘已插入,然后重试。如...
    99+
    2023-05-23
    Win10 桌面
  • Mac一直弹输入密码窗口或提示存储钥匙串解决方法
    有不少用户表示在打开Mac软件后会一直弹出需要输入密码或者存储钥匙串授权界面,但是输入了很多次也不管用,这该怎么办呢?本次小编为您带来Mac一直弹输入密码窗口或提示存储钥匙串解决方法,想知道怎么弄得朋友快来看看吧!...
    99+
    2023-06-05
  • Ubuntu使用集成开发环境QT无法输入中文如何解决
    本篇内容主要讲解“Ubuntu使用集成开发环境QT无法输入中文如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu使用集成开发环境QT无法输入中文如何解决”吧!  1 安装搜狗输入...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作