Динамическое изменение стиля TextView и текста - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь сделать приложение наподобие того, что есть в этом макете:

Супермаркет Supermarket

Это очень простоприложение для супермаркета.Как вы можете видеть, в нижней части экрана есть TextView, который сообщает мне, пуста ли моя корзина или в ней есть какие-либо элементы.Если корзина не пуста, пользователю отображается полная цена, которую он / она должен заплатить.Вы также можете заметить, что стиль и текст указанного TextView изменяются в зависимости от переменной (в данном случае, «totalPrice»).

Как я могу сделать это в Android?Я знаю, что могу использовать простые операторы if (if totalPrice == 0, затем backgroundColor = grey и text = "EmptyCart", например), но это кажется несколько ... жестко закодированным.Есть ли лучший способ сделать это?Как видите, стиль и значения TextView's также изменяются при выполнении действия «Подпродукты» (некоторые продукты имеют Подпродукты, которые вы можете увидеть после нажатия на них).

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

Это может быть просто достигнуто двумя TextView с RelativeLayout и, конечно же, с использованием основных TextView методов.В качестве примера макета:

<RelativeLayout
    android:layout_height="75dp"
    android:layout_width="match_parent"
    android:background="#1EC4F3">

    <TextView
        android:text="PAY"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:typeface="sans"
        android:textColor="#FFFFFF"
        android:textSize="18sp"/>

    <TextView
        android:layout_height="wrap_content"
        android:text="$25.79"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"
        android:typeface="monospace"
        android:textSize="14sp"
        android:textColor="#FFFFFF"/>

</RelativeLayout>
0 голосов
/ 14 декабря 2018

Я думаю, что привязка данных - лучший способ, а не шаблонный код.создайте класс модели и измените фон представления, используя троичную операцию в привязке данных, а также управляйте видимостью текста цены, используя это.

0 голосов
/ 14 декабря 2018

Чтобы установить текстовый вид текста, вы используете textView.setText("new text"); Чтобы установить его фон, его textView.setBackgroundColor(color), где цвет - это шестнадцатеричный код, который вы хотите использовать в качестве целого числа, например 0xFFFF0000 для рег.Очевидно, что они могут быть как переменными, так и жестко закодированными.

...