CardView 在移除高度后占据 space 高度
CardView takes space of elevation after elevation removed
当我降低 CardView 的高度时,它需要 space 的高度
这是正常的图片:-
点击时是这样的:-
这是再次单击时我尝试将其高度设置回正常的位置:-
点击的项目是 (1,2)
这是我的 cardView 代码:-
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="2dp"
card_view:cardBackgroundColor="#fffff7"
card_view:cardCornerRadius="0dp"
card_view:cardUseCompatPadding="true"
OnClick 卡片视图:-
@Override
public void onClick(View arg0) {
if (i % 2 == 1) {
mAddIcon.setVisibility(View.VISIBLE);
Animation anim = AnimationUtils.loadAnimation(context,
R.drawable.settrans);
mAddIcon.startAnimation(anim);
mAddIcon.setImageResource(R.drawable.ic_done_black_24dp);
i++;
Categories cat = new Categories();
cat.mCategory = mCategory.getText().toString();
mSelectedList.add(cat);
Random rnd = new Random();
String[] color= {"#F44336","#FF4081","#9C27B0","#7C4DFF","#009688","#00BCD4","#8BC34A","#CDDC39","#FF5722","#607D8B"};
int index = rnd.nextInt(color.length-1);
String item = color[index];
//int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
// card.setBackgroundColor(color);
// card.setBackgroundColor(Color.parseColor(item));
// mCategory.setTextColor(Color.parseColor("#ffffff"));
card.setElevation(50);
} else {
Animation anim = AnimationUtils.loadAnimation(context,
R.drawable.settrans);
mAddIcon.startAnimation(anim);
mAddIcon.setImageResource(R.drawable.ic_add_black_24dp);
i++;
Categories cat = new Categories();
cat.mCategory = mCategory.getText().toString();
mSelectedList.remove(cat);
mCategory.setTextColor(Color.parseColor("#000000"));
card.setBackgroundColor(Color.parseColor("#fffff7"));
card.setElevation(10);
}
}
});
设置 elevation 或 translationZ View
而不是 CardView
将对您有所帮助。
public boolean press=false;
cardviewrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!press){
v.setTranslationZ(50);
//or you can use
v.setElevation(50);
press=false;
}else{
v.setTranslationZ(0);
//or you can use
v.setElevation(0);
press=true;
}
}
});
如果您不想收到有关最低 Api 级别的警告,请使用此:
if(isLolipop()) v.setTranslationZ(50);
public static boolean isLolipop(){
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}
当我降低 CardView 的高度时,它需要 space 的高度
这是正常的图片:-
点击时是这样的:-
这是再次单击时我尝试将其高度设置回正常的位置:-
点击的项目是 (1,2)
这是我的 cardView 代码:-
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="2dp"
card_view:cardBackgroundColor="#fffff7"
card_view:cardCornerRadius="0dp"
card_view:cardUseCompatPadding="true"
OnClick 卡片视图:-
@Override
public void onClick(View arg0) {
if (i % 2 == 1) {
mAddIcon.setVisibility(View.VISIBLE);
Animation anim = AnimationUtils.loadAnimation(context,
R.drawable.settrans);
mAddIcon.startAnimation(anim);
mAddIcon.setImageResource(R.drawable.ic_done_black_24dp);
i++;
Categories cat = new Categories();
cat.mCategory = mCategory.getText().toString();
mSelectedList.add(cat);
Random rnd = new Random();
String[] color= {"#F44336","#FF4081","#9C27B0","#7C4DFF","#009688","#00BCD4","#8BC34A","#CDDC39","#FF5722","#607D8B"};
int index = rnd.nextInt(color.length-1);
String item = color[index];
//int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
// card.setBackgroundColor(color);
// card.setBackgroundColor(Color.parseColor(item));
// mCategory.setTextColor(Color.parseColor("#ffffff"));
card.setElevation(50);
} else {
Animation anim = AnimationUtils.loadAnimation(context,
R.drawable.settrans);
mAddIcon.startAnimation(anim);
mAddIcon.setImageResource(R.drawable.ic_add_black_24dp);
i++;
Categories cat = new Categories();
cat.mCategory = mCategory.getText().toString();
mSelectedList.remove(cat);
mCategory.setTextColor(Color.parseColor("#000000"));
card.setBackgroundColor(Color.parseColor("#fffff7"));
card.setElevation(10);
}
}
});
设置 elevation 或 translationZ View
而不是 CardView
将对您有所帮助。
public boolean press=false;
cardviewrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!press){
v.setTranslationZ(50);
//or you can use
v.setElevation(50);
press=false;
}else{
v.setTranslationZ(0);
//or you can use
v.setElevation(0);
press=true;
}
}
});
如果您不想收到有关最低 Api 级别的警告,请使用此:
if(isLolipop()) v.setTranslationZ(50);
public static boolean isLolipop(){
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
}