1.ListView滚动黑屏问题

ListView滚动时,数据项变成黑色

问题解决办法:通过添加 android:cacheColorHint = "#00000000" 将背景设为透明即可

2.OnScrollListener回调分析

  1. new OnScrollListener() {
  2. boolean isLastRow = false;
  3. @Override
  4. public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
  5. //滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。
  6. //firstVisibleItem:当前能看见的第一个列表项ID(从0开始)
  7. //visibleItemCount:当前能看见的列表项个数(小半个也算)
  8. //totalItemCount:列表项共数
  9. //判断是否滚到最后一行
  10. if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount > 0) {
  11. isLastRow = true;
  12. }
  13. }
  14. @Override
  15. public void onScrollStateChanged(AbsListView view, int scrollState) {
  16. //正在滚动时回调,回调2-3次,手指没抛则回调2次。scrollState = 2的这次不回调
  17. //回调顺序如下
  18. //第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动
  19. //第2次:scrollState = SCROLL_STATE_FLING(2) 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
  20. //第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动                          //当屏幕停止滚动时为0;当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1;
  21. //由于用户的操作,屏幕产生惯性滑动时为2
  22. //当滚到最后一行且停止滚动时,执行加载
  23. if (isLastRow && scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
  24. //加载元素
  25. ......
  26. isLastRow = false;
  27. }
  28. }
  29. }

3.Android RelativeLayout常用属性~

  1. // 相对于给定ID控件
  2. android:layout_above 将该控件的底部置于给定ID的控件之上;
  3. android:layout_below 将该控件的底部置于给定ID的控件之下;
  4. android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
  5. android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
  6. android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;
  7. android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
  8. android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
  9. android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
  10. android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
  11. // 相对于父组件
  12. android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
  13. android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
  14. android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
  15. android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
  16. // 居中
  17. android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;
  18. android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
  19. android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
  20. // 指定移动像素
  21. android:layout_marginTop 上偏移的值;
  22. android:layout_marginBottom 下偏移的值;
  23. android:layout_marginLeft   左偏移的值;
  24. android:layout_marginRight   右偏移的值;
  1. <span style="font-family: Arial; font-size: 14px; line-height: 26px;">android:paddingstart(paddingend):左右对齐时使用。左对齐时:paddingstart对应paddingleft;paddingend对应paddingright;右对齐时则刚好相反;</span>
  1. <span style="font-family: Arial; font-size: 14px; line-height: 26px;">android:scaleType是控制图片如何resized/moved来匹对ImageView的size。
  2. ImageView.ScaleType / android:scaleType值的意义区别:
  3. CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
  4. CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
  5. CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
  6. FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示
  7. FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
  8. FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
  9. FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示
  10. MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。
  11. </span>
 

4.android:screenOrientation 屏幕方向

  1. unspecified 默认值. 由系統选择显示方向. 在不同的設備可能會有所不同
  2. landscape 橫向
  3. portrait 纵向
  4. user 用戶當前的首選方向
  5. behind 與在活動堆棧下的活動相同方向
  6. sensor 根據物理方向傳感器確定方向. 取決於用戶手持的方向, 當用戶轉動設備, 它跟隨改變.
  7. nosensor 不經物理方向傳感器確定方向. 該傳感器被忽略, 所以當用戶轉動設備, 顯示不會跟隨改變. 除了這個區別,系統選擇使用相同的政策取向對於“未指定”設置

5.EditText属性详解

  1. 1、EditText输入的文字为密码形式的设置
  2. (1)通过.xml里设置:
  3. 把该EditText设为:android:password="true" // 以”.”形式显示文本
  4. (2)在代码里设置:
  5. 通过设置EditText的setTransformationMethod()方法来实现隐藏密码或这显示密码。
  6. editText.setTransformationMethod(PasswordTransformationMethod.getInstance());//设置密码为不可见。
  7. 2、(1)EditText输入的文字为电话号码
  8. Android:phoneNumber=”true”  //输入电话号码
  9. 3、EditText字数限制的设置
  10. (1)在.xml中设置:android:maxLength=“50”
  11. (2)代码中设置:
  12. editText.setFilters(new InputFilter[]{newInputFilter.LengthFilter(100)});
  13. 4、EditText设置字体
  14. android:typeface="monospace" //设置字型。字形有:normal, sans, serif,monospace
  15. 5、EditText是否可编辑
  16. Android:editable // 是否可编辑
  17. 6、在EditText中软键盘的调起、关闭
  18. (1)EditText有焦点(focusable为true)阻止输入法弹出
  19. editText=(EditText)findViewById(R.id.txtBody);
  20. editText.setOnTouchListener(new OnTouchListener(){
  21. public boolean onTouch(View v, MotionEvent event){
  22. editText.setInputType(InputType.TYPE_NULL); //关闭软键盘
  23. return false;
  24. }
  25. });
  26. (2)当EidtText无焦点(focusable=false)时阻止输入法弹出
  27. InputMethodManager imm =
  28. (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
  29. imm.hideSoftInputFromWindow(editText.getWindowToken(),0);
  30. (3)调用数字键盘并设置输入类型和键盘为英文
  31. etNumber.setInputType(InputType.TYPE_CLASS_NUMBER); //调用数字键盘
  32. rlEditText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);//设置输入类型和键盘为英文 或者:android:inputType="textUri|textMultiLine"
  33. (4)android:focusable="false"//键盘永远不会弹出
  34. <activity android:name=".AddLinkman"android:windowSoftInputMode="adjustUnspecified|stateHidden"/>//不自动弹出键盘
  35. //关闭键盘(比如输入结束后执行) InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(etEditText.getWindowToken(), 0);
  36. //自动弹出键盘
  37. ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
  38. etEditText.requestFocus();//让EditText获得焦点,但是获得焦点并不会自动弹出键盘
  39. 7、android:layout_gravity和android:gravity的区别
  40. (1)android:layout_gravity是本元素对父元素的重力方向。
  41. (2)android:gravity是本元素所有子元素的重力方向。
  42. 8、android:padding和android:layout_margin区别
  43. 这两个都可以设置边距,但有细微的区别:
  44. (1)android:padding是相对父view的边距
  45. (2)android:layout_margin是相对同一级View的边距
  46. 例:LinearLayout是水平布局,下面有两个按钮,
  47. (a)如果右边的按钮想距左边的按钮15px,因为这两个按钮是同一级的,应该用android:layout_margin;
  48. (b)如果右边的按钮想距左边的距离为350px,应该用android:padding
  49. 9、android:numeric//只接受数字
  50. android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数,有正负)和decimal(浮点数)。
  51. 10、Enter键图标的设置
  52. 软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:
  53. (1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:
  54. (2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:
  55. (3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:
  56. (4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:
  57. (5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:
  58. (6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:
  59. (7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:
  60. 11、使用android:imeOptinos可对Android自带的软键盘进行一些界面上的设置:
  61. android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键 android:imeOptions="actionNone" //输入框右侧不带任何提示 android:imeOptions="actionGo"   //右下角按键内容为'开始' android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索 android:imeOptions="actionSend"   //右下角按键内容为'发送' android:imeOptions="actionNext"  //右下角按键内容为'下一步' android:imeOptions="actionDone" //右下角按键内容为'完成'
  62. 12、限定edittext能输入数字和字母,并且默认输入为数字,如身份证号码
  63. android:inputType="number" android:digits="0123456789xyzXYZ"
  64. 13、软键盘的调起导致原来的界面被挤上去,或者导致界面下面的tab导航被挤上去,解决方法如下
  65. 解决方法:
  66. 使用Manifest中的Activity的android:windowSoftInputMode的"adjustPan"属性。
  67. 另外注意:有关软键盘的问题可参考android:windowSoftInputMode中属性。
  68. 14、edittext光标详解 edittext.requestFocusFromTouch();//让光标放入到点击位置。 edittext.requestFocus();//默认方式获得焦点
  69. EditText editor = (EditText)getCurrentView();//光标处插入 int cursor = editor.getSelectionStart(); editor.getText().insert(cursor,delta);
  70. 让光标移到末端(这样文字就会向前显示) EditText et = ... String text = "text"; et.setText(text); et.setSelection(text.length());
  71. android:cursorVisible="false" 隐藏光标
  72. android:background="#00000000"//不要文本框背景
  73. Android - 文本框的输入法控制和默认焦点设置
  74. 在开发中,必不可少的会使用到文本框(EditText)来进行数据录入,也就会需要对输入法进行一些控制。
  75. 先看下LAYOUT定义文件中的和输入法有关的属性:
  76. 属性名
  77. 说明
  78. android:inputType
  79. 指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text,
  80. textUri, phone,number,等。
  81. android:imeOptions
  82. 指定输入法窗口中的回车键的功能,可选值为normal,
  83. actionNext,actionDone,actionSearch等。部分输入法对此的支持可能不够好。
  84. 下面的LAYOUT定义文件举了一些例子说明inputType和imeOptions的使用。
  85. <EditText
  86. android:id="@+id/textNormal"
  87. android:layout_width="fill_parent"
  88. android:layout_height="wrap_content"
  89. android:hint="Normal
  90. text"
  91. android:inputType="text"
  92. android:imeOptions="actionNext"
  93. />
  94. <EditText
  95. android:id="@+id/textInteger"
  96. android:layout_width="fill_parent"
  97. android:layout_height="wrap_content"
  98. android:hint="Integer
  99. only"
  100. android:inputType="number"
  101. android:imeOptions="actionNext"
  102. />
  103. <EditText
  104. android:id="@+id/textPhone"
  105. android:layout_width="fill_parent"
  106. android:layout_height="wrap_content"
  107. android:hint="Phone
  108. number"
  109. android:inputType="phone"
  110. android:imeOptions="actionNext"
  111. />
  112. <EditText
  113. android:id="@+id/textEmail"
  114. android:layout_width="fill_parent"
  115. android:layout_height="wrap_content"
  116. android:hint="Email"
  117. android:imeOptions="actionSend"
  118. android:inputType="textEmailAddress"
  119. />
  120. <EditText
  121. android:id="@+id/textSite"
  122. android:layout_width="fill_parent"
  123. android:layout_height="wrap_content"
  124. android:hint="Web
  125. Site"
  126. android:imeOptions="actionDone"
  127. android:inputType="textUri"
  128. />
  129. 有时候也要对intent的默认焦点进行设置,不至于在intent跳转的时候默认焦点(光标)在EditText上,导致进入intent就打开输入法,影响界面美观。
  130. 默认焦点的顺序是:从上倒下
  131. 从左到右第一个可以输入的控件作为焦点
  132. 可以使用:
  133. button.setFocusable(true);
  134. button.requestFocus();
  135. button.setFocusableInTouchMode(true);
  136. 也可以:
  137. 在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:
  138. <LinearLayout
  139. android:focusable="true"
  140. android:focusableInTouchMode="true"
  141. android:layout_width="0px"
  142. android:layout_height="0px"/>
  143. Android EditText 属性汇总
  144. Android EditText 属性汇总
  145. android:layout_gravity="center_vertical" 设置控件显示的位置:默认top,这里居中显示,还有bottom android:hint="请输入数字!"
  146. 设置显示在空间上的提示信息 android:numeric="integer" 设置只能输入整数,如果是小数则是:
  147. decimal android:singleLine="true" 设置单行输入,一旦设置为true,则文字不会自动换行。
  148. android:password="true" 设置只能输入密码
  149. android:textColor = "#ff8c00" 字体颜色
  150. android:textStyle="bold" 字体,bold, italic, bolditalic android:textSize="20dip" 大小
  151. android:capitalize = "characters" 以大写字母写
  152. android:textAlign="center" EditText没有这个属性,但TextView有 android:textColorHighlight="#cccccc" 被选中文字的底色,默认为蓝色
  153. android:textColorHint="#ffff00" 设置提示信息文字的颜色,默认为灰色 android:textScaleX="1.5" 控制字与字之间的间距
  154. android:typeface="monospace" 字型,normal, sans, serif, monospace android:background="@null" 空间背景,这里没有,指透明
  155. android:layout_weight="1" 权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。
  156. android:textAppearance="?android:attr/textAppearanceLargeInverse" 文字外观,这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。不知道这样理解对不对? 通过EditText的layout xml文件中的相关属性来实现:
  157. 1. 密码框属性 android:password="true" 这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。
  158. 2. 纯数字 android:numeric="true" 这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入
  159. 3. 仅允许 android:capitalize="cwj1987" 这样仅允许接受输入cwj1987,一般用于密码验证 下面是一些扩展的风格属性
  160. android:editable="false" 设置EditText不可编辑
  161. android:singleLine="true" 强制输入的内容在单行
  162. android:ellipsize="end" 自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时

android 开发积累的更多相关文章

  1. Android 开发有用代码积累

    Android开发需求变化快,开发周期要求尽量短,接下来一系列文章从实际使用出发总结一些常用的代码片段,便于查找,也为后来人提供一份参考. 1.获取Manifest的基本信息(升级页面和软件关于页面一 ...

  2. Android 开发日常积累

    Android 集合 Android 开源项目分类汇总 扔物线的 HenCoder 高级 Android 教程 hencoder HenCoder:给高级 Android 工程师的进阶手册 Andro ...

  3. (转) Android开发性能优化简介

    作者:贺小令 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序.以上理由,足以 ...

  4. Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."Android 开发入 ...

  5. Android开发App工程结构搭建

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角 ...

  6. 华清远见金牌讲师名家大讲堂Android开发篇成功举办

    2014年3月5日.12日华清远见金牌讲师名家大讲堂(以下简称名家大讲堂)在线讲座全新升级开讲,至此拉开了新一年名家大讲堂的序幕! 华清远见名家大讲堂作为业内颇具影响力的公益免 费线上课程,自2009 ...

  7. 6本Android开发必备图书

    学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好书往往可以让你少走很多弯路,事半功倍.今天与大家分享一些Android开发值得一读的书籍,希望对新手安卓开发者们有所帮助. 1. ...

  8. [素材资源] Android开发性能优化简介(非常不错的)

    转自(http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost& ...

  9. [转]【eoeAndroid索引】史上最牛最全android开发知识汇总

    一.开发环境搭建 (已完成) 负责人:kris 状态:已完成 所整理标签为:搭建 SDK JDK NDK Eclipse ADT 模拟器 AVD 调试器(DEBUG) DDMS 测试 日志 Logca ...

随机推荐

  1. Windows Vista如何让梦幻桌面支持更多格式

    Windows Vista 梦幻桌面(DreamScene)到底能不能支持除了Mpeg/mpg以外的格式? 很多人说梦幻桌面的视频格式有限,像AVI.RM.RMVB就不能做成梦幻桌面!也有很多朋友着急 ...

  2. PHP多文件上传代码练习

    HTML表单: <html> <head><title>upload file</title> <meta http-equiv="Co ...

  3. Odoo(OpenERP)开发实践:通过XML-RPC接口访问Odoo数据库

    Odoo(OpenERP)服务器支持通过XML-RPC接口访问.操作数据库,基于此可实现与其他系统的交互与集成. 本文是使用Java通过XMLRPC接口操作Odoo数据库的简单示例.本例引用的jar包 ...

  4. 回调函数callback使用例子

    代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <tit ...

  5. 简单易懂的Dart》 - Dart语言中文简明教程

    转自:https://www.blackglory.me/straightforward-dart/ Dart是Google公司发布的网络编程语言,其诞生的目的是为了让广大C类OOP程序员们克服Jav ...

  6. Cacti监控MySQL实现过程中碰到的问题解汇总

    前言:cacti监控mysql服务器的大概50张graphs都弄出来了,也出图了,当中遇到一些问题,印象比較深刻的记录例如以下: (一):加入io监控 点击Create Graphs for this ...

  7. Linux命令-网络命令:ifconfig

    ifconfig 查看本机的网卡信息.eth是linxu真实的网卡,多块网卡从零开始,eth0,eth1. ifconfig eth0 192.168.67.5 设置临时网络IP地址

  8. VSCode集成Git代码管理

    一.安装和配置VSCode与Git 1.下载Git并安装: https://git-scm.com/download/ 2.下载VSCode并进行安装: https://code.visualstud ...

  9. java基础讲解14-----IO

    package com.io; import java.io.File;import java.io.IOException; public class IoClass {        /**   ...

  10. mongodb - collMod

    该方法给集合添加一个标识,来修改集合的行为. 标识包含usePowerOf2Sizes和index. 命令格式为: db.runCommand({"collMod":<col ...