Sobes.tech
Middle

Πώς θα επεκτείνατε το TextView χρησιμοποιώντας μια συγκεκριμένη μέθοδο;

sobes.tech AI

Απάντηση από AI

Μπορείτε να επεκτείνετε το TextView δημιουργώντας μια δική σας κλάση που κληρονομεί από το TextView και υπερκαλύπτοντας τις απαραίτητες μεθόδους, π.χ., onDraw() ή onMeasure(). Για παράδειγμα:

public class CustomTextView extends androidx.appcompat.widget.AppCompatTextView {

    public CustomTextView(Context context) {
        super(context);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        // Πρόσθετη λογική αρχικοποίησης, αν χρειάζεται
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // Προσθέστε τη δική σας λογική σχεδίασης, π.χ., πλαίσιο ή υπογράμμιση
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(2);
        canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        // Προσθέστε τη δική σας λογική μέτρησης διαστάσεων
        int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
        int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
        setMeasuredDimension(width, height);
        // Μπορείτε να αλλάξετε τις μετρημένες διαστάσεις αν χρειάζεται
    }
}

Σε αυτό το παράδειγμα, η κλάση CustomTextView κληρονομεί από το AppCompatTextView. Η μέθοδος onDraw() έχει υπερκαλυφθεί για να προσθέσει ένα κόκκινο πλαίσιο γύρω από το κείμενο, και το onMeasure() παραμένει αμετάβλητο, αλλά δείχνει τη δυνατότητα υπερκαλύψεώς του για προσαρμογή των διαστάσεων.

Για να χρησιμοποιήσετε μια προσαρμοσμένη TextView στο XML layout, δηλώστε το πλήρες όνομα της κλάσης:

<com.toypoihkeio.CustomTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Γειά σου, Προσαρμοσμένο TextView!" />

Αντικαταστήστε το com.toypoihkeio με το μονοπάτι του πακέτου σας.