Ich arbeite an Erweiterung und Zusammenbruch der Eigenschaften auf CardView
.Erweiterbare Höhe von CardView
public class SimpleCardView extends CardView {
private int animationDuration;
public SimpleCardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public SimpleCardView(Context context) {
super(context);
}
public SimpleCardView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void expand(){
final int initialHeight = getHeight();
final float scale = getContext().getResources().getDisplayMetrics().density;
int targetHeight = (int) (232 * scale + 0.5f);
final int distance_to_expand = targetHeight - initialHeight;
Animation animation = new Animation() {
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
getLayoutParams().height = (int) (initialHeight +(distance_to_expand*interpolatedTime));
requestLayout();
}
@Override
public boolean willChangeBounds() {
return true;
}
};
animationDuration = distance_to_expand;
animation.setDuration((long)distance_to_expand);
startAnimation(animation);
}
public int getAnimationTime(){
return animationDuration;
}
public void collapse(){}
}
Das ist mein Screenshot:
ich den konstanten Wert für die Zielhöhe setze.
int targetHeight = (int) (232 * scale + 0.5f);
Hier ist ein expandierbares targetHeight
Höhe CardView
. Aus diesem Grund, wenn der Inhalt zu lang ist, wird nur ein kleiner Teil des Inhalts angezeigt.
Gibt es eine Möglichkeit, diese Höhe dynamisch nicht einen konstanten Wert zu setzen?
Einfache Lösung bro. Stellen Sie CardView height ein wrap_content setYour Titel Wie Sie tun und unten TextView Content Visibility sollte gegangen.So wenn Sie für Expand klicken Sie einfach versuchen, sichtbar die TextView, die Inhalt enthält. –
Es ist eine gute Idee, die Sichtbarkeit der Ansicht sichtbar zu machen. Im Moment mache ich es nicht so. Also, gibt es eine Möglichkeit, diese Zielhöhe dynamisch zu machen. –