Существует пользовательский listView, где он отображает текст или изображение или и то, и другое. Теперь он отображает текст или изображение или и то, и другое, но проблема заключается в том, что пока отображается только текст, занимаемое пространство для изображенияView все еще видно. Я также установил видимость в GONE, но это не скроет.imageview не скрывается на пользовательском Listview
код адаптера для Listview:
public class DescAdapter extends BaseAdapter implements Filterable{
private final listdisplay ds;
private ArrayList<descusers> dusers;
private ArrayList<descusers> orig;
public DescAdapter(listdisplay ds, ArrayList<descusers> dusers) {
this.ds = ds;
this.dusers = dusers;
}
@Override
public int getCount() {
return dusers.size();
}
@Override
public Object getItem(int position) {
return dusers.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
descusers du = dusers.get(position);
String username = du.loginname;
String descCrip=du.descCrip;
String Limage = du.image;
convertView = LayoutInflater.from(ds).inflate(R.layout.customlist,null);
TextView uname = (TextView)convertView.findViewById(R.id.username);
TextView desc = (TextView)convertView.findViewById(R.id.description);
ImageView iview= (ImageView)convertView.findViewById(R.id.imageList);
iview.setVisibility(View.GONE);
uname.setText(username);
desc.setText(descCrip);
if(!Limage.isEmpty()){
Glide.with(convertView.getContext()).load(Limage)
.diskCacheStrategy(DiskCacheStrategy.ALL).fitCenter().centerCrop().into(iview);
iview.setVisibility(View.VISIBLE);
}
return convertView;
}
}
Пользовательские XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="226dp"
android:orientation="vertical"
android:background="@drawable/test"
android:layout_gravity="center_horizontal|top">
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="username"
android:textColor="#ff6aa9ff"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginLeft="45dp"/>
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Suggest"
android:textColor="#ff06010b"
android:textSize="18sp"
android:layout_marginLeft="45dp"/>
<ImageView
android:layout_width="275dp"
android:layout_height="165dp"
android:id="@+id/imageList"
android:layout_marginTop="6dp"
android:layout_marginLeft="45dp"/>
</LinearLayout>
Что плохого я сделал в приведенном выше коде?
Проблема с высотой Linear Layout, которая была установлена как android: layout_height = "226dp", Changed to Wrap-Content решила проблему.
добавить 'если (convertView == NULL) {TextView uname = (TextView) convertView.findViewById (R.id.username); TextView desc = (TextView) convertView.findViewById (R.id.description); ImageView iview = (ImageView) convertView.findViewById (R.id.imageList); iview.setVisibility (View.GONE); uname.setText (имя пользователя); desc.setText (descCrip); если (Limage.isEmpty()) { Glide.with (convertView.getContext()) нагрузки (Limage) .diskCacheStrategy (DiskCacheStrategy.ALL) .fitCenter() centerCrop() в (IView)...; iview.setVisibility (View.VISIBLE); }} ' –
Вы вызываете notifyDataSetChanged() после обновления вашего представления? –
@IntelliJAmiya - Не работает, такая же проблема. – user2269164