Метод GradientDrawable setState не работает - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь установить два разных Drawable в соответствии с TextView статусом (выбран / не выбран). Но для обоих состояний вид устанавливает один и тот же чертеж.

        GradientDrawable gd = new GradientDrawable();

        int[] state = new int[] {android.R.attr.state_selected};
        int[] state1 = new int[] {-android.R.attr.state_selected};
        gd.setState(state);
        // Specify the shape of drawable
        gd.setShape(GradientDrawable.RECTANGLE);

        // Set the fill color of drawable
        gd.setColor(Color.RED); // make the background transparent

        // Create a 2 pixels width red colored border for drawable
        gd.setStroke(2, Color.RED); // border width and color

        // Make the border rounded
        gd.setCornerRadius(90.0f); // border corner radius

        // Finally, apply the GradientDrawable as TextView background
        textViews.setBackground(gd);

        GradientDrawable gd1 = new GradientDrawable();
        gd1.setShape(GradientDrawable.RECTANGLE);
        gd1.setState(state1);
        gd1.setStroke(2, Color.RED); // border width and color
        textView.setBackground(gd1);

    }
...