将 CardView Elevation 重置为默认值(静止海拔)
Resetting CardView's Elevation to the default value (resting elavation)
我想更改 CardView
的海拔并稍后重新设置。
目前,我将海拔的默认值(称为 静止海拔)保留为 Fragment
的 onCreateView
中的字段值。稍后当我想重置时,用 setCardElevation
.
设置值
private CardView cardView;
private float restingElevation;
private float pickedUpState = 50.0f;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
cardView = (CardView) view.findViewById(R.id.table_top);
restingElevation = cardView.getCardElevation(); // keep the default
Log.d("elevation", "resting: " + restingElevation);
return view;
}
private void pickUp() {
cardView.setCardElevation(pickedUpState);
}
private void rest() {
cardView.setCardElevation(restingElevation);
}
但是,我想知道是否有任何直接的方法可以将 CardView
的高程设置为其默认值(静止高程)而不保留 onCreateView
中尚未更改的值. Material设计主题的android.support.v7.cardview:cardElevation
是否有资源参数(或样式)?
(好像CardView
的静止高程是2.66和LogCat。实际上,在官方Material Design Guide中, Card 的静止高度显示在 2dp 和 3dp 之间。)
我找到了 CardView
的默认海拔(静止海拔)。
float elevation = getResources().getDimension(R.dimen.cardview_default_elevation);
Log.d("elavation", "this is the default: " + elevation);
也就是R.dimen.cardview_default_elevation
.
补充检查:
其实R.dimen.cardview_default_elevation
就是2dp,官方是这么描述的Material Design Guide。而 getDimension
returns px 中的值取决于设备。所以我的设备是 Nexus7 2012,其屏幕密度为 tvdpi(mdpi 为 x1.33),返回值计算为 2dp x 1.33 = 2.66px
.
我想更改 CardView
的海拔并稍后重新设置。
目前,我将海拔的默认值(称为 静止海拔)保留为 Fragment
的 onCreateView
中的字段值。稍后当我想重置时,用 setCardElevation
.
private CardView cardView;
private float restingElevation;
private float pickedUpState = 50.0f;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
cardView = (CardView) view.findViewById(R.id.table_top);
restingElevation = cardView.getCardElevation(); // keep the default
Log.d("elevation", "resting: " + restingElevation);
return view;
}
private void pickUp() {
cardView.setCardElevation(pickedUpState);
}
private void rest() {
cardView.setCardElevation(restingElevation);
}
但是,我想知道是否有任何直接的方法可以将 CardView
的高程设置为其默认值(静止高程)而不保留 onCreateView
中尚未更改的值. Material设计主题的android.support.v7.cardview:cardElevation
是否有资源参数(或样式)?
(好像CardView
的静止高程是2.66和LogCat。实际上,在官方Material Design Guide中, Card 的静止高度显示在 2dp 和 3dp 之间。)
我找到了 CardView
的默认海拔(静止海拔)。
float elevation = getResources().getDimension(R.dimen.cardview_default_elevation);
Log.d("elavation", "this is the default: " + elevation);
也就是R.dimen.cardview_default_elevation
.
补充检查:
其实R.dimen.cardview_default_elevation
就是2dp,官方是这么描述的Material Design Guide。而 getDimension
returns px 中的值取决于设备。所以我的设备是 Nexus7 2012,其屏幕密度为 tvdpi(mdpi 为 x1.33),返回值计算为 2dp x 1.33 = 2.66px
.