Android_UI_listView

ListView是一个经常要用到的android控件,现总结遇到过的一些美化的小细节。
 
1、listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来
 
解决:在XML中加入
 
android:scrollingCache=”false” 或 android:cacheColorHint=”#00000000″作用是使拖动的时候背景颜色变黑的效果去掉
 
2、listview的上边和下边有黑色的阴影
 
解决: android:fadingEdge=”none”
 
3、修改listview的Item默认选择时的黄色背景
 
解决:在java文件中使用listview.setSelector()方法,或使用如下代码
 
1
 
android:listSelector="#00000000"//这样写是透明的,也可加入Drawable图片
 
4、lsitview的每一项之间需要设置一个图片做为间隔
 
解决: android:divider=”@drawable/list_driver”
android ListView XML中的属性:android:scrollingCache="false",在代码中怎么设置,
Android下ListView上下滑动背景变黑在代码中可以使用:listview.setCacheColorHint(Color.TRANSPARENT);
1、ListView拖动反黑
 
List正常显示,但是一拖动,整个背景就变成黑色。停止拖动后,颜色又变回正常。
 
解决方法:在Layout文件中设置ListView的属性:
 
android:scrollingCache="false"
 
 
2、ListView默认点击样式失效
 
ListView是有默认点击样式的当设置了Item的background为某种颜色或某张图片时,默认的点击样式就会失效。
 
其实想清楚了,很简单。ListView本来有多种状态:平常的、选中的、点击时的。如果设置了背景,那么所有这些状态下都是这一个背景了。所以点击
时没有反应。
 
正确的设置方法是:
 
在Drawable的资料里建一个xml文件,例如名为style_list_item.xml
 
 


[html] view plaincopy
01.<span style="font-size: 13px;"><?xml version="1.0" encoding="utf-8"?>  
02.<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
03.    <item android:state_pressed="true" android:drawable="@drawable/btn_item_sel" /> 
04.    <item android:drawable="@drawable/btn_item_nor" />  
05.</selector></span>  
再设置item的Background为@drawbale/style_list_item
 


3、listView中removeFooterView之后,列表无法再点击。
 
本来想实现列表滑动到底部时自动加载内容,加载完所有内容后,去掉列表底部的“更多”按钮。但在实际实现过程中发现,在onScroll方法里
removeFooterView后,列表不会再响应对Item的点击,有时过一会儿又会恢复。如果设置Visible为Gone,列表的底部还是会占一块空间。在网上看到另
外的朋友也遇到这个问题。大概是因为不能在onScroll方法里做这件事情。
 
后来就将removeFooterView的动作改到了其它地方,不放在onScroll方法里就正常了。
 
 
4、代码中动态添加TableRow到LinearLayout中,TableRow不显示
 
源代码如下(摘自StackOverFlow网站,这个问题我也是在那里得到的答案,超爱StackOverFlow的)
 
 


[java] view plaincopy
01.LinearLayout tabella = (LinearLayout) findViewById(R.id.tabella_contatori);  
02.  
03.    for(int i =0; i<array_list.size(); i++){  
04.        TableRow row = new TableRow(getApplicationContext());  
05.        row.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
06.  
07.        TextView data = new TextView(getApplicationContext());  
08.        data.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.2f)); 
09.        data.setTextAppearance(getApplicationContext(), android.R.attr.textAppearanceMedium); 
10.        data.setTextColor(Color.BLACK);  
11.        data.setBackgroundColor(Color.WHITE);  
12.        data.setPadding(2, 0, 0, 0);  
13.        data.setText("asd");  
14.  
15.        row.addView(data);  
16.        tabella.addView(row);  
17.    }  
18.}  
这时,修改代码如下之后,再运行起来,TableRow的内容就会展现出来了。
 
data.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
 
就是添加到TableRow中的元素,它们LayoutParam应该是TableRow类中的LayoutParams。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值