Android错误记录
- ClassCastException: android.widget.LinearLayout
L
a
y
o
u
t
P
a
r
a
m
s
c
a
n
n
o
t
b
e
c
a
s
t
t
o
a
n
d
r
o
i
d
.
w
i
d
g
e
t
.
A
b
s
L
i
s
t
V
i
e
w
LayoutParams cannot be cast to android.widget.AbsListView
LayoutParamscannotbecasttoandroid.widget.AbsListViewLayoutParams
问题描述:自定义下拉刷新listview(RefreshList extends ListView)时,需要在这个RefreshList 中添加头布局:
addHeaderView(下拉刷新View)。运行时出现了这个错误。
原因:根据错误提示,是布局参数类型转化出现了问题,我需要加入到listview头部的布局是LinearLayout,所以可以判断是listView的布局参数类型是AbsListView.LayoutParams
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
refreshView.setLayoutParams(lp);
//将下拉刷新添加到头布局中
addHeaderView(refreshView);
这里需要感谢这篇博客:https://blog.csdn.net/iblade/article/details/50957767
- 首先描述以下错误:使用android的DrawLayout,无法获得左侧滑动栏中的头布局文件中的控件
运行时还会报空指针异常
解决方式:
//侧滑栏
NavigationView navigationView=findViewById(R.id.nav_view);
//通过策划栏获得头布局文件
View headerView=navigationView.getHeaderView(0);
//通过头布局文件获得textview
TextView tv_mail = (TextView) headerView.findViewById(R.id.tv_mail);
感谢下面这个论坛的讨论:https://bbs.csdn.net/topics/391856071