VisiIn我的自定義適配器getView方法,我有不同類型的佈局單元格的開關情況。我指的是這些細胞和顯示/一個佈局XML隱藏的setVisibility(查看....)某些元素在我的第一個單元格,「StreamLayout,」首先我要表明的是一個ImageView的「內置揚聲器」。我在所有其他佈局中將此圖像視圖設置爲不可見,但是當我這樣做時,它不會顯示在第一個佈局中。我會提供我的getView方法和我的佈局XML:當我設置一些項目在getView到view.invisible(),別人不出現
getView:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
holder = null;
int type = getItemViewType(position);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.listview_cell, null);
holder = new ViewHolder();
} else {
holder = (ViewHolder) convertView.getTag();
}
switch (type) {
case STREAM_LAYOUT:
convertView = mInflater.inflate(R.layout.listview_cell, null);
ImageView boombox = (ImageView) convertView.findViewById(R.id.boombox).setVisibility(View.Visible);
convertView.findViewById(R.id.cell_image).setVisibility(View.GONE);
convertView.findViewById(R.id.divider).setVisibility(View.GONE);
convertView.findViewById(R.id.song).setVisibility(View.GONE);
convertView.findViewById(R.id.artist).setVisibility(View.GONE);
convertView.findViewById(R.id.bottom_layout).setVisibility(View.GONE);
convertView.setTag(holder);
case TALKSET_LAYOUT:
convertView.findViewById(R.id.boombox).setVisibility(View.GONE);
convertView.findViewById(R.id.cell_image).setVisibility(View.GONE);
convertView.findViewById(R.id.divider).setVisibility(View.GONE);
convertView.findViewById(R.id.playcut).setVisibility(View.GONE);
holder.talkset = (TextView) convertView.findViewById(R.id.talk_break_text);
holder.talkset.setText("TALKSET");
holder.talkset_icon = (ImageView) convertView.findViewById(R.id.talk_break_image);
holder.talkset_icon.setImageResource(R.drawable.temp_talkset);
convertView.setTag(holder);
break;
case BREAKPOINT_LAYOUT:
convertView.findViewById(R.id.boombox).setVisibility(View.GONE);
convertView.findViewById(R.id.cell_image).setVisibility(View.GONE);
convertView.findViewById(R.id.divider).setVisibility(View.GONE);
convertView.findViewById(R.id.artist).setVisibility(View.GONE);
//convertView.findViewById(R.id.boombox).setVisibility(View.GONE);
long l = Long.parseLong(oslist.get(position).get("hour"));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(l);
calendar.setTimeInMillis(l * 1000);
int hour = calendar.get(Calendar.HOUR);
holder.song.setText("Breakpoint: "+hour+":00");
holder.breakpoint = (TextView) convertView.findViewById(R.id.talk_break_text);
holder.breakpoint.setText("BREAKPOINT");
holder.breakpoint_icon = (ImageView) convertView.findViewById(R.id.talk_break_image);
holder.breakpoint_icon.setImageResource(R.drawable.temp_talkset);
convertView.setTag(holder);
break;
case PLAYCUT_LAYOUT: //Playcut
convertView = mInflater.inflate(R.layout.listview_cell, null);
convertView.findViewById(R.id.boombox).setVisibility(View.GONE);
holder.cell_image = (ImageView) convertView.findViewById(R.id.cell_image);
try {
if(oslist.get(position).get("albumArtUrl")!=null) {
Picasso
.with(context)
.load(oslist.get(position).get("albumArtUrl"))
.placeholder(R.drawable.no_album_art)
.error(R.drawable.no_album_art).into(holder.cell_image);
}else{
Picasso
.with(context)
.load(oslist.get(position).get("artistArtUrl"))
.placeholder(R.drawable.no_album_art)
.error(R.drawable.no_album_art).into(holder.cell_image);
}
} catch (IllegalArgumentException e) {
holder.cell_image.setImageResource(R.drawable.no_album_art);
}
holder.song = (TextView) convertView.findViewById(R.id.song);
holder.artist = (TextView) convertView.findViewById(R.id.artist);
holder.song.setText(oslist.get(position).get("songTitle"));
holder.artist.setText(oslist.get(position).get("artistName"));
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateView(position);
}
});
convertView.setTag(holder);
break;
case NULL_LAYOUT:
convertView.setTag(holder);
break;
}
return convertView;
}
我的XML
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/boombox"
android:id="@+id/boombox"
/>
<!-- Versatile image view storage for either boombox, no album art image, or album art -->
<ImageView
android:id="@+id/cell_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
/>
<!-- Divider between image and data -->
<View
android:id="@+id/divider"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<!-- Layout for bottom half of playcut cells -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/bottom_layout"
android:layout_below="@id/divider">
<!-- Data for Song and Artist -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/playcut">
<TextView
android:id="@+id/song"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:gravity="center"
/>
<TextView
android:id="@+id/artist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/song"
android:gravity="center"
/>
</RelativeLayout>
<!-- Talkset and breakpoint cell data -->
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/talk_break"
android:paddingLeft="1dp"
android:paddingTop="1dp"
android:paddingBottom="1dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/talk_break_image"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/talk_break_text"
android:layout_toRightOf="@id/talk_break_image"/>
</RelativeLayout>
<!-- Playcut Cell, clicked, displaying Facebook, Twitter, heart, and search icons -->
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="0,1,2,3,4"
android:paddingBottom="2dp"
android:id="@+id/table">
<TableRow>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/twitter_icon"/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/facebook_icon"/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/unclicked_heart_icon"/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/search_icon"/>
</TableRow>
</TableLayout>
</RelativeLayout>
</LinearLayout>
我對這個例子非常困惑,我看到你把所有的東西都設置爲'View.GONE',爲什麼? – AdamMc331
對不起對不起,我改變了它 –