[英]Set Relativelayout height inside listview
I want to set a relativeLayout
height inside a ListView.
我想在
ListView.
设置一个relativeLayout
高度ListView.
This is my code in MenuListAdapter.java
这是我在
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);
}
I'm adding xml for more information of my code 我正在添加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"/>
but i get an error saying that "E/AndroidRuntime(11406): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams"
但我收到一条错误消息,指出
"E/AndroidRuntime(11406): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams"
Can someone tell me what's wrong with my code ? 有人可以告诉我我的代码有什么问题吗? Thank's
谢谢
It's working, use AbsListView instead of RelativeLayout. 工作正常,使用AbsListView代替RelativeLayout。 Thank you for Mr.Piyush Kukadiya
谢谢你Piyush Kukadiya先生
Try this : 尝试这个 :
Change 更改
background.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
to 至
background.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT));
UPDATE : 更新:
RelativeLayout.LayoutParams
and AbsListView.LayoutParams
are two different classes of android.widget
Package. RelativeLayout.LayoutParams
和AbsListView.LayoutParams
是android.widget
包的两个不同类。
Here you are replacing existing layout params of correct type AbsListView.LayoutParams
with more generic ViewGroup.LayoutParams
ie RelativeLayout.LayoutParams
. 在这里,您将使用更通用的
ViewGroup.LayoutParams
即RelativeLayout.LayoutParams
替换正确类型为AbsListView.LayoutParams
现有布局参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.