首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮文本SPANNABLE未应用

按钮文本SPANNABLE未应用
EN

Stack Overflow用户
提问于 2018-06-21 12:42:41
回答 1查看 354关注 0票数 0

我使用SpannableStringBuilder对按钮中的文本应用于不同的样式。但它并没有被应用。

代码语言:javascript
复制
SpannableStringBuilder spannableStringBuilder
    = new SpannableStringBuilder(valueText);
spannableStringBuilder.setSpan(
    new TextAppearanceSpan(mContext, R.style.ListItemButtonTitleTheme),
    0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
spannableStringBuilder.setSpan(
    new TextAppearanceSpan(mContext, R.style.ListItemButtonValueTheme),
    6, valueText.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
holder.valueButton.setText(
    spannableStringBuilder.toString(), Button.BufferType.SPANNABLE
);

list_item.xml

代码语言:javascript
复制
<Button
    android:id="@+id/value_button"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintWidth_percent="0.25"
    app:layout_constraintDimensionRatio="1:0.7"
    style="@style/ListItemButtonTheme"
    app:layout_constraintTop_toBottomOf="@id/hr_line_2"
    app:layout_constraintStart_toEndOf="@id/type_button"
    app:layout_constraintEnd_toStartOf="@id/sell_button"
    android:text="Google" />

styles.xml

代码语言:javascript
复制
<style name="ListItemButtonTitleTheme" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@color/list_item_content_text_color</item>
    <item name="android:textSize">25sp</item>
    <item name="font">@font/proxima_nova_semibold</item>
    <item name="android:textAllCaps">false</item>
</style>

<style name="ListItemButtonValueTheme" parent="@android:style/Widget.TextView">
    <item name="android:textColor">@android:color/black</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textSize">20sp</item>
    <item name="font">@font/proxima_nova_semibold</item>
    <item name="android:textAllCaps">false</item>
</style>
EN

回答 1

Stack Overflow用户

发布于 2018-06-21 12:46:42

使用AppCompactButton代替Button

代码语言:javascript
复制
<android.support.v7.widget.AppCompatButton
        android:id="@+id/value_button"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintWidth_percent="0.25"
        app:layout_constraintDimensionRatio="1:0.7"
        style="@style/ListItemButtonTheme"
        app:layout_constraintTop_toBottomOf="@id/hr_line_2"
        app:layout_constraintStart_toEndOf="@id/type_button"
        app:layout_constraintEnd_toStartOf="@id/sell_button"
        android:text="Google"
        />

和可扩展到跨越的变化

代码语言:javascript
复制
  SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(valueText);
  spannableStringBuilder.setSpan(new TextAppearanceSpan(mContext, R.style.ListItemButtonTitleTheme), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  spannableStringBuilder.setSpan(new TextAppearanceSpan(mContext, R.style.ListItemButtonValueTheme), 6, valueText.length()-1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  holder.valueButton.setText(spannableStringBuilder.toString(), Button.BufferType.SPANNABLE);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50968868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档