android – ListView行在CustomAdapter中以编程方式设置左边距
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – ListView行在CustomAdapter中以编程方式设置左边距,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1557字,纯文字阅读大概需要3分钟。
内容图文
我有一个带有自定义适配器的ListView.
在适配器的getview中,我想将15 dip的左边距设置为某些行.基于某些条件.
-----------------------------
| Row 1 (margin 15dip) |
-----------------------------
-----------------------------
| Row 2 (margin 15dip) |
-----------------------------
-----------------------------
| Row 2.1 (margin 30dip) |
-----------------------------
-----------------------------
| Row 2.1.1 (margin 45dip) |
-----------------------------
-----------------------------
| Row 3 (margin 15dip) |
-----------------------------
但是当我使用以下代码设置边距时,它会产生ClassCastException
01-17 18:19:35.467: E/AndroidRuntime(14165):
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
cannot be cast to android.widget.AbsListView$LayoutParams
行布局
06001
我的getView方法中的示例
Log.i("LayoutParams","1");
// setting left margin
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT
);
Resources r = context.getResources();
int px = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
15,
r.getDisplayMetrics()
);
if(requirementModel.getParentId() == 0)
{
params.setMargins(px, 0, 0, 0);
parentFrameLayout.setLayoutParams(params);
}
else
{
params.setMargins(px+px, 0, 0, 0);
parentFrameLayout.setLayoutParams(params);
}
parentFrameLayout.requestLayout();
}
return row;
此代码运行但崩溃时
return row;
请帮忙.谢谢 :)
解决方法:
ListView期望不支持边距的AbsListView.LayoutParams.尝试在LinearLayout对象而不是FrameLayout上设置边距.或者在FrameLayout上使用填充.
内容总结
以上是互联网集市为您收集整理的android – ListView行在CustomAdapter中以编程方式设置左边距全部内容,希望文章能够帮你解决android – ListView行在CustomAdapter中以编程方式设置左边距所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。