Android 仅检查条件显示并动态列表查看具有不同高度的所有项目
1.仅显示检查条件Android 仅检查条件显示并动态列表查看具有不同高度的所有项目,android,listview,Android,Listview,1.仅显示检查条件 public View getView(final int position, View convertView, ViewGroup parent) { View vi = convertView; if (convertView == null) vi = inflater.inflate(R.layout.main_alllatestnewslist, parent, false); Im
public View getView(final int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.main_alllatestnewslist, parent,
false);
ImageView imageview = (ImageView) vi
.findViewById(R.id.image_alllatestnewstitle);
imageview.setVisibility(View.INVISIBLE);
TextView titletext = (TextView) vi
.findViewById(R.id.text_particularlatestnewstitle);
TextView categorytext = (TextView) vi
.findViewById(R.id.text_newscategorytitle);
TextView datetext = (TextView) vi.findViewById(R.id.text_newsdate);
if (!imagepath[position].toString().equals("no picture")) {
imageLoader.DisplayImage(imagepath[position], imageview);
imageview.setVisibility(View.VISIBLE);
titletext.setWidth(460 - imageview.getWidth() - 5); <-- this line
} else {
imageview.setVisibility(View.INVISIBLE);
imageview.setImageDrawable(null);
}
titletext.setText(title[position].toString());
categorytext.setText(category[position].toString());
datetext.setText(date[position].toString());
return vi;
}
这是项目的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_childlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/list_bg"
android:minHeight="?android:attr/listPreferredItemHeight" >
<LinearLayout
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginBottom="5px"
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
android:layout_marginTop="5px" >
<ImageView
android:id="@+id/image_alllatestnewstitle"
android:layout_width="140px"
android:layout_height="80px"
android:scaleType="centerCrop" />
</LinearLayout>
....
</RelativeLayout>
....
例如,其中一个项目的显示时间为80px,而其他项目的显示时间仅为40px。但是,其他项目将不会包装到40px和80px,并使所有项目具有相同的高度
如何为所有高度不同的项目设置高度?尝试
imageview.setVisibility(View.GONE)代码>
不可见
仅隐藏视图,而消失
将其“删除”尝试imageview.setVisibility(view.GONE)代码>
不可见
仅隐藏视图,而消失
将其“删除”请参见@super的
回答,并注意,视图。不可见
仍保留一个“占位符”,因此布局不会更小。另一方面,View.GONE
为您提供了所需的方面。如果处理复杂的布局,如果使用它们作为项目渲染器,则应该考虑为它们创建自己的“代码>视图/代码>扩展类,并查看状态和状态拖拽。参见<代码> @ SUMM的答案,并且注意,视图。Itabor 仍然保留了“占位符”,因此布局不会更小。另一方面,View.GONE
为您提供了所需的方面。如果处理复杂布局,如果将它们用作项目渲染器,则应该考虑为它们创建自己的“代码>视图/代码>扩展类,并查看状态和状态拖拉。它仍然是相同的,仍然”SATEY尝试“设置IVIEVIEW高度为30,它也和80一样,你能在你的文本视图中添加xml部分吗?不管怎样,我的老板接受了我目前的身高,但是第一个问题是现在的主要问题,我不知道为什么只有在滚动列表视图之后,if else
条件才起作用。我可以帮助你构建xml,这样就不会出现这样的问题。如果你想要的话,我可以把它添加到我的回答中。它仍然是一样的,仍然“吃掉”空间。我尝试将imageview高度设置为30,它也像80。你能在textview所在的位置添加xml部分吗?不管怎样,我的老板接受了我当前的高度,但是第一个问题是现在的主要问题,我不知道为什么只有在滚动列表视图之后,if-else
条件才起作用。我可以帮助您构建xml,这样就不会出现此类问题。如果你想要的话,我可以把它加到我的答案中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_childlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/list_bg"
android:minHeight="?android:attr/listPreferredItemHeight" >
<LinearLayout
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginBottom="5px"
android:layout_marginLeft="10px"
android:layout_marginRight="10px"
android:layout_marginTop="5px" >
<ImageView
android:id="@+id/image_alllatestnewstitle"
android:layout_width="140px"
android:layout_height="80px"
android:scaleType="centerCrop" />
</LinearLayout>
....
</RelativeLayout>