最近在使用webview做页面开发,项目上要求webview在获取到焦点的时候需要有边框线,于是添加上了webview的选中效果,但是出现了网页中的内容压选中框的情况。之后给webview添加padding也不能解决这个问题,从网上搜索后发现,webview设置padding是不会起作用的,这个是webview的一个bug。但是问题还是地解决的,于是想了如下的webview选中的替代方案:

  1. webview设置背景色为透明色
  2. 在webview下方放一个LinearLayout里面有个ImageView,大小刚好比webview大出一个边框
  3. 当webview获取到焦点的时候,显示有边框的ImageView,当webview失去焦点的时候,显示正常的无边框的ImageView。

下面贴出代码:

1.xml文件配置(LinearLayout在webview下面并且比其大4dp)

<LinearLayout
android:id="@+id/web_linerlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="2dp"
android:layout_alignParentBottom="true"
android:layout_below="@+id/title_Relay"
android:layout_toRightOf="@id/btn"
android:layout_marginTop="5dp"
android:layout_marginRight="8dp"
android:background="@color/3C123456"
android:padding="0dp">
</LinearLayout>
<WebView
android:id="@+id/web_WebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp"
android:layout_alignParentBottom="true"
android:layout_below="@+id/title_Relay"
android:layout_toRightOf="@id/btn"
android:layout_marginTop="9dp"
android:layout_marginRight="11dp"
android:layout_marginBottom="4dp"
android:layerType="software"
android:hardwareAccelerated="true">
</WebView>

2.JAVA代码

final LinearLayout linearlayout = (LinearLayout)findViewById(R.id.web_linerlayout);
final ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(R.drawable.webview_select);
LayoutParams layoutParams = new LayoutParams(linearlayout.getLayoutParams().width, linearlayout.getLayoutParams().height);
imageView.setLayoutParams(layoutParams);
linearlayout.addView(imageView); WebView shopWeb = (WebView) findViewById(R.id.web_WebView);
shopWeb.setOnFocusChangeListener(new View.OnFocusChangeListener()
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus){
linearlayout.removeView(imageView);
}else{
linearlayout.addView(imageView);
}
}
});

android webview内容压线问题解决方法的更多相关文章

  1. 【转】 Android WebView内容宽度自适应

    我们平常在项目中有可能会遇到网页的内容是通过json数据传递到app上面用WebView来显示的,这时候我们通常都要调整内容的总宽度不超过父容器的宽度,这样子用户可以不用左右滑动就可以看到全部的内容. ...

  2. Android 5.x 权限问题解决方法

    android 5.x开始,引入了非常严格的selinux权限管理机制,我们经常会遇到因为selinux权限问题造成的各种avc denied困扰.  本文结合具体案例,讲解如何根据log来快速解决9 ...

  3. 关于Android WebView内容不同屏幕兼容处理

    最近团队里项目开发APP时,其中有个界面要用到WebView来显示,而不用原生的控件. 开发这个界面的时候遇到一个问题,就是Android的碎片化导致有众多屏幕分辨率,不同分辨率的屏幕对这个界面Web ...

  4. android webview内存泄露解决方法

    完整的activity的onDestroy()方法:@Override protected void onDestroy() { if( mWebView!=null) { // 如果先调用destr ...

  5. Android webview通过http get下载文件下载两次的问题及解决方法

    一.现象 一般通过Android webview进行下载文件的方法是 1.重写DownloadListener的onDownloadStart方法,在onDownloadStart方法中弹出对话框提示 ...

  6. Android webview 写入cookie的解决方法以及一些属性设置

    原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ...

  7. Android WebView 不支持 H5 input type="file" 解决方法

    最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中.发现点击H5中 标签 不能打开android资源管理器. 通过网络搜索发现是因为 android webvie ...

  8. Android WebView 调试方法

    调试Android WebView中的h5页面,通常就是通过alert和抓包工具来定位问题,效率低且无法直接调试样式或打断点,可谓是事倍功半.本文介绍一下我在项目中使用的新方法,能够通过chrome的 ...

  9. 安装Android SDK Manager的“Failed to fetch refused”问题解决方法

    安装Android SDK Manager的"Failed to fetch refused"问题解决方法 一见 2014/11/11 问题现象: 步骤一:修改hosts文件(wi ...

随机推荐

  1. codeforces Mafia

    /* * Mafia.cpp * * Created on: 2013-10-12 * Author: wangzhu */ /** * 每个人都想玩若干场,求至少需要玩几场才可以满足大家的需求. * ...

  2. 定义设置颜色的RGB值的宏

    //定义设置颜色的RGB值的宏 #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha ...

  3. ANDROID_MARS学习笔记_S01原始版_020_Mp3player001_歌曲列表

    一.项目设计 二.歌曲列表简介 1.利用java.net.HttpURLConnection以流的形式下载xml文件为String 2.自定义ContentHandler-->Mp3ListCo ...

  4. 《深入理解linux内核》第二章 内存寻址

    三种不同的内存地址 逻辑地址(logical address)包含在linux实际指令中的地址,即分段式地址,是对应的硬件平台段式管理转换前地址由16位的段选择符(segment selector)和 ...

  5. 【HDOJ】3275 Light

    这就是个简单线段树+延迟标记.因为对bool使用了~而不是!,wa了一下午找不到原因. /* 3275 */ #include <iostream> #include <sstrea ...

  6. Windows7 64下MinGW64/MSYS环境搭建

    原文出处: CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64 http://www.kinetic ...

  7. USACO4.13Fence Loops(无向图最小环)

    最近脑子有点乱 老是不想清楚就啪啪的敲 敲完之后一看 咦..样例都过不去 仔细一想 这样不对啊 刚开始就写了一SPFA 最后发现边跟点的关系没处理好 删了..写dfs..还是没转化好 开始搜解题方法 ...

  8. C# volatile与lock

    一.C#中volatile volatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,vola ...

  9. MVC 自定义AuthorizeAttribute实现权限管理

    在上一节中提到可以使用AuthorizeAttribute进行权限管理: [Authorize] public ActionResult TestAuthorize() { return View() ...

  10. C#调用C++函数入口点的问题 z

    C++使用 void extern __declspec(dllexport) 函数名()定义的输出函数, 在C#中调用时, 如前文所述, 使用 [DllImport("D:\VS2005P ...