listview
属性
android:listSelector="@android:color/transparent" 点击选择的背景效果
android:dividerHeight="1dp" 分割线
android:divider="#aaa" 分割线颜色
android:stackFromBottom="true" 显示最底部
android:cacheColorHint="@android:color/transparent"
android:scrollbars="none" 隐藏listView的滚动条
android:fadeScrollbars="false" 滚动条不自动隐藏(一直显示)
lv.setSelection();
加载原理和优化
Adapter的getCount()得到ListView的长度; 然后根据这个长度,调用getView()一行一行的绘制ListView的每一项。(如果你的getCount()返回值是0的话,列表一行都不会显示,如果返回1,就只显示一行。返回几则显示几行。)
问题:如果我们有几千几万甚至更多的item要显示怎么办?为每个Item创建一个新的View?
Recycler的构件在做缓存!(界面可见个数+1个convertView)eg:2个可见
利用convertview回收视图,效率提高200%。
利用viewholder模式,效率在提高50%
哈哈!!!厉害
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
Contact contact = list.get(position);
ViewHolder hodler = null;
if (convertView == null)
{
hodler = new ViewHolder();
convertView = View.inflate(context, R.layout.contact_row_item_model, null);
hodler.tvName = (TextView) convertView.findViewById(R.id.tvName);
convertView.setTag(hodler);
} else
{
hodler = (ViewHolder) convertView.getTag();
}
hodler.tvName.setText(contact.name);
return convertView;
}
class ViewHolder
{
TextView tvName;
}
1.Context尽量使用Application Context,因为Application的Context的生命周期比较长,引用它不会出现内存泄露的问题
2.listview的高度要match_parent ,不然getView一顿乱调用;而且会出现莫名的问题~~
EditText
username.setText(mUsername.trim());//
username.setSelection(mUsername.length());//光标
android:imeOptions="actionSearch"
android:singleLine="true"
if (etText == null)
return;
etText.setText(defultText);
if (!StringUtils.isEmpty(hintText))
etText.setHint(hintText);
switch (type)
{
case 1: // text
// InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD
etText.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_NORMAL);
break;
case 2:// pwd
etText.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_VARIATION_PASSWORD);
break;
case 3:
// number
int inputType = InputType.TYPE_CLASS_NUMBER
| InputType.TYPE_NUMBER_VARIATION_NORMAL;
etText.setInputType(inputType);
default:
etText.setInputType(InputType.TYPE_CLASS_TEXT);
break;
}
TextView
setTextColor:
Resources resource = (Resources) getBaseContext().getResources();
ColorStateList csl = (ColorStateList) resource.getColorStateList(R.color.my_color);
if (csl != null)
{
tv.setTextColor(csl); //颜色不是R.color.id,!
}
tv.setTextColor(Color.rgb(255, 255, 255));
RadioButton
fragment下面切换的button
<style name="radioButtonStyle">
<item name="android:textColor">@color/rb_colors_selector</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:button">@null</item>
<item name="android:textSize">14sp</item>
<item name="android:layout_width">0dip</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center</item>
</style>
textColor选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="#ff0000"></item>
<item android:state_checked="true" android:color="#ff0000"></item>
<item android:color="#ffffff"></item>
</selector>
图片选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/govaffairs_press"></item>
<item android:state_checked="true" android:drawable="@drawable/govaffairs_press"></item>
<item android:drawable="@drawable/govaffairs"></item>
</selector>
WebView
settings.setJavaScriptEnabled(true);// 表示支持js
settings.setBuiltInZoomControls(true);// 显示放大缩小按钮
settings.setUseWideViewPort(true);// 支持双击缩<pre name="code" class="java">setWebViewClient//开始 结束 所有跳转的链接
setWebChromeClient//进度发生变化 获取网页标题
WebSettings settings = mWebView.getSettings();
settings.setTextSize(TextSize.LARGEST);//字体大小
settings.setTextZoom(20);//字体大小
android-support-v4
android-support-v4.jar.properties
src = D:\\adt-bundle\\adt-bundle-windows-x86_64-20140321\\sdk\\extras\\android\\support\\v4\\src
tv.setTextColor(Color.rgb(255, 255, 255));