ForegroundColorSpan не работает должным образом (Android 9 - пирог) - PullRequest
0 голосов
/ 06 ноября 2018

При использовании ForegroundColorSpan для фрагмента текста вместо изменения цвета текста он подчеркивает его, когда курсор находится над ним. Это происходит на моем (физическом) пикселе 3 с Android 9 (пирог) и на (физическом) пикселе 1 с Android 9 (пирог).

Однако, когда я запускаю его на (Виртуальном) FWVGA под управлением Android 7.1.1 (Nougat), он срабатывает, как и ожидалось.

Я огляделся по сторонам, но ничего не могу найти в этом отношении (возможно, потому что Android 9 относительно новый?)

MainActivity.kt

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val editText = findViewById<EditText>(R.id.codeView)

        var ss: SpannableStringBuilder = SpannableStringBuilder("I'm RED and I'm GREEN now")

        //val testing123: Spanned = Html.fromHtml("<u><font color='#2eb6f0'>Blue I Hope</font></u>")
        val fcsRed: ForegroundColorSpan = ForegroundColorSpan(Color.RED)
        val fcsGreen: ForegroundColorSpan = ForegroundColorSpan(Color.GREEN)

        ss.run {
            setSpan(fcsRed, 3, 7, 0)
            setSpan(fcsGreen, 16, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
        }

        editText.setText(ss)


    }
}

activity_main.xml -> codeView

<EditText
            android:id="@+id/codeView"
            android:text = ""
            android:layout_width="362dp"
            android:layout_height="503dp"
            android:layout_marginTop="4dp"
            android:layout_weight="1"
            android:gravity="top|left"
            android:inputType="textMultiLine"
            android:lines="40"
            android:maxLines="20000"
            android:minLines="1"
            android:scrollbars="vertical|horizontal"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.956" />

(физический) Pixel 3 под управлением Android 9 (пирог) (Physical) Pixel 3 running Android 9 (Pie)

(Виртуальный) FWVGA под управлением Android 7.1.1 (Nougat) (Virtual) FWVGA running Android 7.1.1 (Nougat)

1 Ответ

0 голосов
/ 06 ноября 2018

Настройки> Специальные возможности> Экспериментальные> Высококонтрастный текст

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...