LinearLayout水平无法正常工作

时间:2019-02-12 11:55:20

标签: android android-linearlayout textview

我尝试在TextView中添加自定义引号。我用水平创建LinearLayout并添加开始/结束自定义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">

            <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具有较大的文本并且需要两行时,则不会显示3th textview。是否可以解决此问题,或者我的方法是否正确? 谢谢

2 个答案:

答案 0 :(得分:0)

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>

答案 1 :(得分:0)

将带有感叹号的完整文本仅添加到一个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);