我想在relativeLayout
ListView.
高度
这是我在MenuListAdapter.java
RelativeLayout background = (RelativeLayout) convertView.findViewById(R.id.background_color);
ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
txtTitle.setTypeface(typeface);
if(navDrawerItems.get(position).getType() == MenuType.HEADER)
{
background.setBackgroundColor(context.getResources().getColor(R.color.header_color));
background.setClickable(false);
background.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
}else{
background.setBackgroundColor(color.transparent);
}
我正在添加xml以获取我的代码的更多信息
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:id="@+id/background_color">
<ImageView
android:id="@+id/icon"
android:layout_width="@dimen/spacing_layout_image"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="@dimen/spacing_margin_text"
android:layout_marginRight="@dimen/spacing_margin_text"
android:src="@drawable/menu_btn"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/icon"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:textColor="@drawable/menu_text"
android:paddingRight="@dimen/spacing_scrollview"
android:layout_centerVertical="true"/>
<TextView
android:id="@+id/notifTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/spacing_margin_text"
android:background="@android:color/holo_red_dark"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textColor="@android:color/white"
android:paddingLeft="@dimen/radius_default"
android:paddingRight="@dimen/radius_default"
android:visibility="gone"/>
但我收到错误消息"E/AndroidRuntime(11406): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams"
有人能告诉我我的代码有什么问题吗? 感谢的
它正在工作,使用AbsListView而不是RelativeLayout。 感谢Mr.Piyush Kukadiya
答案 0 :(得分:0)
试试这个:
更改
background.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
到
background.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT));
更新:
RelativeLayout.LayoutParams
和AbsListView.LayoutParams
是两个不同类别的android.widget
包。
在这里,您将使用更通用的AbsListView.LayoutParams
(ViewGroup.LayoutParams
替换正确类型RelativeLayout.LayoutParams
的现有布局参数。