Android 曾经的小Bug(常识)

原创 2015年07月08日 13:42:11

开发中遇到的一些小问题,边开发边记录:

1、ScrollView和ListView 去除滑动时的阴影滚动条:

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/layout_btn_touzi"
        android:layout_below="@+id/framelayout"
        android:fadingEdge="none"
        android:overScrollMode="never"
        android:scrollbars="none" >

<ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:fadingEdge="none"
        android:overScrollMode="never"
        android:scrollbars="none">
    </ListView>

2、EidtText 获取焦点事件:

XML文件中 :

<EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="match_parent"

            android:focusable="true" 
            android:focusableInTouchMode="true"

            android:textColorHint="#78dcd2"
            android:textColor="#06C1AE"
            android:background="#00000000"
            android:singleLine="true"
            android:textSize="17dp"
            android:hint="用户名/手机号"
            android:paddingLeft="10dp" />

Java 代码中:

editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();

editText.clearFocus(); //失去焦点
editText.requestFocus();//获取焦点

3、做省市区 三级联动时 引用 city.s3db数据库 时报错 :
原因 package 路径错误,将demo中的package替换为自己的package即可

4、CheckBox 更改默认显示图标 ,默认的图标与UI设计不符合,需要变更,方法如下:
CheckBox:

 <CheckBox
                style="@style/msg_gray_hint"
                android:layout_marginLeft="10dp"
                android:button="@drawable/selector_btn_check"
                android:drawablePadding="5dp"
                android:text="我已阅读并同意"/>

Selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- checked -->
    <item android:drawable="@drawable/check_true" android:state_checked="true"/>
    <!-- default -->
    <item android:drawable="@drawable/check_false" android:state_checked="false"/>

</selector>
在selector中放两张图片check_true、check_false,分别代表选择和未选择的图标
有一点要说明的是文字与图标之间的间隙,让美工做图片的时候 给留一点空隙(调试了半天还是那样就取巧了)。

5. ListView 的item 点击事件没有响应时 添加如下代码:
android:descendantFocusability=”blocksDescendants”

6. ListView 去除或者替换点击的背景色:
android:listSelector=”@color/blue”

 <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:divider="@drawable/bg_line"
        android:fadingEdge="none"
        android:overScrollMode="never"
        android:listSelector="@color/blue"
        android:scrollbars="none" >

7. 隐藏键盘:
进入页面先隐藏键盘,当EditText 获得焦点时在弹出键盘
((InputMethodManager)et_user_password.getContext().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(LoginActivity.this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

8. imageView.setClickable(false) 失效的解决办法
设置一个控件的setClickable(false)后,发现没有效果。
很奇怪的一个现象,最后发现是它在作怪

if (!isClickable()) {  
           setClickable(true);  
}  

所以要在 setOnClickListener ()之后设置setClickable(false)
如:

 edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (imageView.isClickable()) {
                    update.setVisibility(View.GONE);
                    imageView.setClickable(false);
                } else {
                    update.setVisibility(View.VISIBLE);
                    imageView.setClickable(true);
                }
            }
        });
 imageView.setClickable(false);
    }

9、ListView中有button,checkbox,GridView的用法

1.如果listview的item中有button,checkbox的时候,往往如果不做处理的情况,button,checkbox会获得焦   点,导致listview不相应OnItemLongClickListener()这个方法,抢占了Item的获得焦点的能力,解决的办法有两种:
    (1)在button,checkbox的xml布局文件中添加代码: android:focusable=“false” 即就可以相应OnItemLongClickListener()这个方法了。
    (2)在listview中的item的布局文件中,在总的LinearLayout的属性中添加一句话:android:descendantFocusability="blocksDescendants" 即把在LinearLayout里面的focusable属性都设置成了false, 就可以相应OnItemLongClickListener()这个方法了。

2、在ListView的item中有GridView,抢占焦点的情况,解决办法步骤如下:
(1) 现在ListView的Item的最外面的LinearLayout中设置:android:descendantFocusability=”blacksDescendants”
(2) 再在gridview的getView()方法中设置:
gridview.setClickable(false);
gridview.setPressed(false);
gridview.setEnabled(false);
即就可以相应OnItemLongClickListener()这个方法了。

10、Android EditText 输入金额(小数点后两位)

  editText.setFilters(new InputFilter[]{new InputFilter() {
                @Override
                public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
                    if(source.equals(".") && dest.toString().length() == 0){
                        return "0.";
                    }
                    if(dest.toString().contains(".")){
                        int index = dest.toString().indexOf(".");
                        int mlength = dest.toString().substring(index).length();
                        if(mlength == 3){
                            return "";
                        }
                    }
                    return null;
                }
            }});

一个小程序的小BUG

先看程序: #include #include #define N 1000000 //#define M 10000 #define M 1000000 void main(void) { ...
  • yihualuomeng
  • yihualuomeng
  • 2013年12月13日 16:52
  • 770

关于idea的一些基础知识

idea如何创建maven项目 打开idea之后,file -> new -> project 接着在弹出的new project 页面,选择maven -> 勾选Create from ...
  • qq_36074092
  • qq_36074092
  • 2017年07月01日 20:13
  • 87

微信小程序bug总结, 不定期更新

上传文件, 回应的json需要手动JSON.parsewx.hideLoading();看起来是个同步的api, 不过有时需要异步调用, 如:setTimeout(() => { wx.hideL...
  • butterfly5211314
  • butterfly5211314
  • 2017年10月24日 12:38
  • 662

小程序解决微信bug

以下是我朋友少夫白杰对小程序的产品思考他的简书链接: http://www.jianshu.com/p/ef6ab8b0b624小程序解决浏览内容时回复微信的问题产品背景在微信中阅读各种资讯相信已经...
  • u010321471
  • u010321471
  • 2017年01月19日 16:46
  • 997

计算机常识 和 应用技巧

8.恢复硬件以前的驱动程序   在安装了新的硬件驱动程序后发现系统不稳定或硬件无法工作时,只需在“设备管理器”中选择“驱动程序恢复”按钮,即可恢复到先前正常的系统状态。但不能恢复打印机的驱动程序...
  • csdn_ndx
  • csdn_ndx
  • 2015年05月11日 19:39
  • 1090

linux 有用的一些小知识

1,自动补全 2,通配符 3,管道  过滤 4,重定向 5,环境变量修改 6,启动项查看,服务重启 7,系统和设备管理,查看串口,pci,usb设备 8,执行最近的命令 9,帮助 1...
  • liang890319
  • liang890319
  • 2012年12月02日 13:38
  • 1794

android常用的必备基础知识

首先从四大组件说起:  Activity:  生命周期:  activity三种状态:运行(运行在最前端)、停止(不可见,完全被覆盖)、暂停(可见,但前端还有其他activity)  生命周期...
  • qq_25462179
  • qq_25462179
  • 2017年06月30日 17:37
  • 181

为什么程序员发现不了自己的BUG

最近在朋友圈流行了这样的一张小学数学题,当然结果是“出乎意料”,看似简单的结果,几乎很少有人作对,而分析下来的原因无非是惯性思维下的粗心导致完全错误,那么小编带大家分析下思考过程。看图可知,猫=X 猫...
  • fsGSYMkyEeQzfQb4OBqs
  • fsGSYMkyEeQzfQb4OBqs
  • 2017年12月03日 00:00
  • 392

《管理的常识》第二章<什么是组织>读书笔记

一、组织的理解        组织的存在是为了实现目标,组织管理的存在是为了提升效率。        1、组织不是一个“家”         组织是用目标、责任、权力来联结,而不是用情感来联接。简而言...
  • charleslei
  • charleslei
  • 2015年04月04日 20:23
  • 721

五一、微信小程序开发中踩过的坑(遇到的bug)

CSS 能使用calc 官方组件的样式可以通过!important覆盖 JS事件 需要注意微信提供的接口是否为异步的,跨页面的异步数据可以通过app.globalData 或者在app这个变量上添加回...
  • zm06201118
  • zm06201118
  • 2017年12月06日 18:12
  • 5079
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 曾经的小Bug(常识)
举报原因:
原因补充:

(最多只允许输入30个字)