有时候遇到一些看起来很奇怪的问题。在这里一并记录一下。
1、ListView拖动反黑
List正常显示,但是一拖动,整个背景就变成黑色。停止拖动后,颜色又变回正常。
解决方法:在Layout文件中设置ListView的属性:
android:scrollingCache="false"
2、ListView默认点击样式失效
ListView是有默认点击样式的当设置了Item的background为某种颜色或某张图片时,默认的点击样式就会失效。
其实想清楚了,很简单。ListView本来有多种状态:平常的、选中的、点击时的。如果设置了背景,那么所有这些状态下都是这一个背景了。所以点击时没有反应。
正确的设置方法是:
在Drawable的资料里建一个xml文件,例如名为style_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_item_sel" />
<item android:drawable="@drawable/btn_item_nor" />
</selector>
再设置item的Background为@drawbale/style_list_item
3、listView中removeFooterView之后,列表无法再点击。
本来想实现列表滑动到底部时自动加载内容,加载完所有内容后,去掉列表底部的“更多”按钮。但在实际实现过程中发现,在onScroll方法里removeFooterView后,列表不会再响应对Item的点击,有时过一会儿又会恢复。如果设置Visible为Gone,列表的底部还是会占一块空间。在网上看到另外的朋友也遇到这个问题。大概是因为不能在onScroll方法里做这件事情。
后来就将removeFooterView的动作改到了其它地方,不放在onScroll方法里就正常了。
4、代码中动态添加TableRow到LinearLayout中,TableRow不显示
源代码如下(摘自*网站,这个问题我也是在那里得到的答案,超爱*的)
LinearLayout tabella = (LinearLayout) findViewById(R.id.tabella_contatori); for(int i =0; i<array_list.size(); i++){ TableRow row = new TableRow(getApplicationContext()); row.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); TextView data = new TextView(getApplicationContext()); data.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.2f)); data.setTextAppearance(getApplicationContext(), android.R.attr.textAppearanceMedium); data.setTextColor(Color.BLACK); data.setBackgroundColor(Color.WHITE); data.setPadding(2, 0, 0, 0); data.setText("asd"); row.addView(data); tabella.addView(row); } }这时,修改代码如下之后,再运行起来,TableRow的内容就会展现出来了。
data.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
就是添加到TableRow中的元素,它们LayoutParam应该是TableRow类中的LayoutParams。