【问题标题】:Android - align textViews issueAndroid - 对齐 textViews 问题
【发布时间】:2016-11-15 12:10:52
【问题描述】:

我正在开发一个安卓应用程序。而且我在同一行中有很多 TextViews。 但是当 TextView 变大时,它会换行,但不会向左对齐。

这是我需要的:

这就是我现在拥有的:

我的代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp">

 <ImageView
    android:layout_width="10dp"
    android:layout_height="10dp"
    android:layout_gravity="center_vertical"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:src="@drawable/arrow_right" />

 <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/due_after"
     android:textColor="@color/black" />

 <TextView
     android:id="@+id/tv_due_days"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginEnd="3dp"
     android:layout_marginLeft="3dp"
     android:layout_marginRight="3dp"
     android:layout_marginStart="3dp"
     android:text=" 500 days"
     android:textColor="@color/red" />

 <TextView
     android:id="@+id/tv_redemption"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/from_earn_date"
     android:textColor="@color/black" />

</LinearLayout>

【问题讨论】:

    标签: android xml android-layout textview android-xml


    【解决方案1】:

    使用单个文本视图来显示数据,如果您希望文本具有不同的颜色,请使用 SpannableStringBuilder。

    例子:

    SpannableStringBuilder builder = new SpannableStringBuilder();
    
    String red = "this is red";
    SpannableString redSpannable= new SpannableString(red);
    redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, red.length(), 0);
    builder.append(redSpannable);
    
    String white = "this is white";
    SpannableString whiteSpannable= new SpannableString(white);
    whiteSpannable.setSpan(new ForegroundColorSpan(Color.WHITE), 0, white.length(), 0);
    builder.append(whiteSpannable);
    
    String blue = "this is blue";
    SpannableString blueSpannable = new SpannableString(blue);
    blueSpannable.setSpan(new ForegroundColorSpan(Color.BLUE), 0, blue.length(), 0);
    builder.append(blueSpannable);
    
    mTextView.setText(builder, BufferType.SPANNABLE);
    

    【讨论】:

      【解决方案2】:

      不是将三个文本视图设为单个文本视图,而是使用可跨字符串以将 500 天设为红色

      例子:

      SpannableStringBuilder builder = new SpannableStringBuilder();
      
      String str = "Due date after 500day from earned points date";
      SpannableString mutableStr= new SpannableString(str);
      redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 15, 21, 0);
      builder.append(mutableStr);
      

      【讨论】:

        【解决方案3】:

        据我所知,当您可以使用单个文本视图时,您正在使用两个单独的文本视图。

        您可以将“500 天”连接到原始文本视图中。

        firstTextView.setText(getResources().getString(R.string.STRING_NAME, 500));
        

        只要你的 Res>Values>String.xml 文件中有字符串。

        <string name="STRING_NAME">Due date after %1$f from earned points date</string>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-19
          • 1970-01-01
          • 2014-01-12
          • 1970-01-01
          • 1970-01-01
          • 2013-12-27
          相关资源
          最近更新 更多