我有一个CardView
on list_song.xml
文件,例如:
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:background="@drawable/mxhbg"
android:layout_marginTop="8dp">
<RelativeLayout
android:id="@+id/txtitemsong"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/listsongbg"
android:padding="8dp">
<ImageView
android:id="@+id/imgmusic"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:background="@drawable/listsongbg"
android:src="@drawable/ic_music" />
<TextView
android:id="@+id/txtsongname"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:layout_toEndOf="@+id/imgmusic"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:padding="6dp"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Name"
android:textColor="#ffff"
android:textSize="15sp" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
我用我的Activity
上的BaseAdapter
来绑定:
public class PlaylistAdapter extends BaseAdapter {
@Override
public int getCount() {
return songsList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.list_song, parent, false);
RelativeLayout txtitemsong = view.findViewById(R.id.txtitemsong);
if (position < 2 || position > 5) {
txtitemsong.setVisibility(View.GONE);
}
return view;
}
}
由于某些限制(在这种情况下,2/5作为例子),我想完全隐藏大约txtitemsong
个项目,这是垂直堆叠.
但是一旦我用txtitemsong.setVisibility(View.GONE)
隐藏它,似乎每个txtitemsong的边缘被保留(所以显示的项目上方/下方有很多空间).
如何隐藏txtitemsong
个堆叠的物品?
我可以在CardView
上设置android:layout_marginTop="0dp"
,但似乎没有效果.android:layout_marginTop="0dp"
对txtitemsong
,没有任何变化.
以下是原始视图:
这就是txtItemSong.setVisibility(View.GONE)
隐藏前两项和最后一项的视图:
您可以看到,在项目列表开始之前,顶部有页边距/填充.
如果我隐藏了CardView,并且我确实隐藏了:
if (position < 2 || position > 5) {
txtItemSong.setVisibility(View.GONE);
ViewGroup.LayoutParams params = txtItemSong.getLayoutParams();
params.height = 0;
txtItemSong.setLayoutParams(params);
}
以下是结果(甚至奇怪):