Горизонтальная LinearLayout не работает правильно - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь добавить пользовательские кавычки в моем TextView.Я создаю LinearLayout с горизонтальным и добавляю начало / конец собственного текстового представления.Вот мой источник

            <LinearLayout
            android:id="@+id/description_container"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="@dimen/dimen_p_30"
            android:layout_marginTop="@dimen/dimen_p_25"
            android:layout_marginRight="@dimen/dimen_p_30"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:fontFamily="@font/helvetica_regular"
                android:gravity="top"
                android:text="“"
                android:textColor="#E8E9EF"
                android:textSize="@dimen/dimen_p_46" />
            <TextView
                android:id="@+id/descriptionTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:fontFamily="@font/myriad_geo_medium"
                android:gravity="top"
                android:maxLines="150"
                android:text="test message"
                android:textColor="@color/gray"
                android:textSize="@dimen/dimen_p_14" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:fontFamily="@font/helvetica_regular"
                android:gravity="bottom"
                android:text="”"
                android:textColor="#E8E9EF"
                android:textSize="@dimen/dimen_p_46" />

        </LinearLayout>

Все работает отлично, но когда мой descriptionTextView имеет большой текст и ему нужно две строки, 3-е текстовое представление не отображается. Есть какой-либо способ решить эту проблему или делает мой путьправильно?Спасибо

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Добавьте ваш полный текст с восклицательными знаками только в один TextView.Используйте строку Spannable, чтобы задать цвет восклицания.

TextView textView = (TextView)findViewById(R.id.mytextview01);    
String mText = textView.getText();
Spannable wordtoSpan = new SpannableString(mText);          
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), (mText.Length()-2), (mText.Length()-1), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
textView.setText(wordtoSpan);
0 голосов
/ 12 февраля 2019

Используйте weight для ваших TextView с, как это

   <LinearLayout
    android:id="@+id/description_container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="@dimen/dimen_p_30"
    android:layout_marginTop="@dimen/dimen_p_25"
    android:layout_marginRight="@dimen/dimen_p_30"
    android:orientation="horizontal"
    android:weightSum="3"
    >

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/helvetica_regular"
        android:gravity="top"
        android:text="“"
        android:textColor="#E8E9EF"
        android:textSize="@dimen/dimen_p_46" />
    <TextView
        android:id="@+id/descriptionTextView"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/myriad_geo_medium"
        android:gravity="top"
        android:maxLines="150"
        android:text="test message"
        android:textColor="@color/gray"
        android:textSize="@dimen/dimen_p_14" />

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:fontFamily="@font/helvetica_regular"
        android:gravity="bottom"
        android:text="”"
        android:textColor="#E8E9EF"
        android:textSize="@dimen/dimen_p_46" />

</LinearLayout>
...