1,真机测试中,字体变大挤出边框,原因是测试机调大了字体,需在activity中设置字体不随系统的字体改变而改变。
在baseActivity中加入:
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config=new Configuration();
config.setToDefaults();
res.updateConfiguration(config,res.getDisplayMetrics() );
return res;
}
2,ListView被ScrollView包裹导致listview行数显示不全。
加入方法使Listview有多长显示多长:
/**
* 设置Listview的高度
*/
public void setListViewHeight(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if(listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
后来发现子listview的TextView显示多行文本时,计算就不准确了,在网上找到了其他的解决方法:
在自定义listview继承listview,实现onMeasure方法:
测试了一下,发现这个方法是可行的。
3,布局页面中引用drawable中的xml画的虚线,在模拟器和真机中显示为实线。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<stroke
android:dashGap="4dip"
android:dashWidth="10dip"
android:width="1dip"
android:color="@android:color/darker_gray" />
<size android:height="2dip"/>
</shape>
解决方法,在AndroidManifest中关掉硬件加速。
android:hardwareAccelerated="false"