Android Spannable 使用?注意事項

1、當前示例中間的 "評論",使用SpannableStringBuilder實現,點擊評論會有高亮效果加粗,但再點擊其它Bar時無法恢復默認樣式。

2、因為SpannableString或SpannableStringBuilder中的效果是疊加的,恢復默認樣式需要先移除加粗樣式?spannable.removeSpan(樣式)

3、示例代碼

// 樣式是疊加的,所以要清除之前的樣式????????????????????????????????????????????????????????????????????????????????????????????????? spannableStringBuilder.removeSpan(highlightSpanColor);
spannableStringBuilder.removeSpan(highlightSpanStyle);

private SpannableStringBuilder spannableStringBuilder;// 評論 默認樣式// 字體顏色ForegroundColorSpan defaultSpanColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_606266,null));// 字體大小AbsoluteSizeSpan defaultSpanSize = new AbsoluteSizeSpan(DisplayUtils.dp2px(getContext(), 15));// 字體樣式StyleSpan defaultSpanStyle = new StyleSpan(Typeface.NORMAL);// 評論 高亮樣式// 字體顏色ForegroundColorSpan highlightSpanColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_303133,null));// 字體樣式StyleSpan highlightSpanStyle = new StyleSpan(Typeface.BOLD); // 字體加粗// 評論數量 樣式// 字體顏色ForegroundColorSpan countColor = new ForegroundColorSpan(getResources().getColor(com.lstm.baselibrary.R.color.color_909399, null));// 字體大小AbsoluteSizeSpan countSize = new AbsoluteSizeSpan(DisplayUtils.dp2px(getContext(), 12));/*** 不同樣式拼接 默認樣式*/private void splicingDefaultTextStyle() {spannableStringBuilder = new SpannableStringBuilder(getText());// 評論spannableStringBuilder.removeSpan(highlightSpanColor); // 樣式是疊加的,所以要清除之前的樣式spannableStringBuilder.removeSpan(highlightSpanStyle);spannableStringBuilder.setSpan(defaultSpanColor, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體顏色spannableStringBuilder.setSpan(defaultSpanSize, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體大小spannableStringBuilder.setSpan(defaultSpanStyle, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體樣式// 評論數量spannableStringBuilder.setSpan(countColor, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體顏色spannableStringBuilder.setSpan(countSize, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體大小spannableStringBuilder.setSpan(defaultSpanStyle, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體樣式setText(spannableStringBuilder);}/*** 不同樣式拼接 高亮樣式*/private void splicingHighlightTextStyle() {spannableStringBuilder = new SpannableStringBuilder(getText());// 評論spannableStringBuilder.removeSpan(defaultSpanColor); // 樣式是疊加的,所以要清除之前的樣式spannableStringBuilder.removeSpan(defaultSpanStyle);spannableStringBuilder.setSpan(highlightSpanColor, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體顏色spannableStringBuilder.setSpan(defaultSpanSize, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體大小spannableStringBuilder.setSpan(highlightSpanStyle, 0, 2, Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體樣式// 評論數量spannableStringBuilder.setSpan(countColor, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體顏色spannableStringBuilder.setSpan(countSize, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體大小spannableStringBuilder.setSpan(defaultSpanStyle, 2, getText().length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); // 字體樣式setText(spannableStringBuilder);}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161229.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Qt-25】控件篇

一、comboBox控件 1、獲取item數量 ui->comboBox_2->count(); 2、根據索引值獲取文本 ui->comboBox->itemText(i); 3、調整當前顯示文本內容 ui->comboBox->setCurrentIndex(j); 4、添加item ui->comboBox->addItem("");//添加一個內…

基于SSM的濟南旅游網站設計與實現

末尾獲取源碼 開發語言:Java Java開發工具:JDK1.8 后端框架:SSM 前端:Vue 數據庫:MySQL5.7和Navicat管理工具結合 服務器:Tomcat8.5 開發軟件:IDEA / Eclipse 是否Maven項目:是 目錄…

汽車級全保護型六路半橋驅動器NCV7708FDWR2G 原理、參數及應用

NCV7708FDWR2G 是一款全保護型六路半橋驅動器,特別適用于汽車和工業運動控制應用。六個高壓側和低壓側驅動器可自由配置,也可單獨控制。因此可實現高壓側、低壓側和 H 橋控制。H 橋控制提供正向、逆向、制動和高阻抗狀態。驅動器通過標準 SPI 接口進行控…

python 基于gdal,richdem,pysheds實現 實現洼填、D8流向,匯流累計量計算,河網連接,分水嶺及其水文分析與斜坡單元生成

python gdal實現水文分析算法及其斜坡單元生成 實現洼填、D8流向,匯流累計量計算,河網連接,分水嶺 # utf-8 import richdem as rdre from River import * from pysheds.grid import Grid import time from time import time,sleep import numpy as np from osgeo import g…

【Pytorch】Visualization of Fature Maps(2)

學習參考來自 使用CNN在MNIST上實現簡單的攻擊樣本https://github.com/wmn7/ML_Practice/blob/master/2019_06_03/CNN_MNIST%E5%8F%AF%E8%A7%86%E5%8C%96.ipynb 文章目錄 在 MNIST 上實現簡單的攻擊樣本1 訓練一個數字分類網絡2 控制輸出的概率, 看輸入是什么3 讓正確的圖片分…

分類預測 | Matlab實現基于DBN-SVM深度置信網絡-支持向量機的數據分類預測

分類預測 | Matlab實現基于DBN-SVM深度置信網絡-支持向量機的數據分類預測 目錄 分類預測 | Matlab實現基于DBN-SVM深度置信網絡-支持向量機的數據分類預測分類效果基本描述程序設計參考資料 分類效果 基本描述 1.利用DBN進行特征提取,將提取后的特征放入SVM進行分類…

vue中 多個請求,如果一個請出錯,頁面繼續執行

vue中 多個請求,如果一個請出錯,頁面繼續執行 在Vue中,可以通過Promise.all()方法來處理多個請求,即使其中一個請求出錯,頁面也可以繼續執行其他的邏輯。 下面是一個示例代碼,演示了如何在Vue中處理多個請…

Cookie與Session

文章目錄 Cookie的介紹Cookie的由來什么是CookieCookie原理Cookie覆蓋瀏覽器查看Cookie 在Django中操作Cookie設置Cookie查詢瀏覽器攜帶的Cookie刪除Cookie Cookie校驗登錄session Cookie的介紹 Cookie的由來 首先我們都應該明白HTTP協議是無連接的。 無狀態的意思是每次請求…

CSS特效016:天窗揚起合上的效果

CSS常用示例100專欄目錄 本專欄記錄的是經常使用的CSS示例與技巧,主要包含CSS布局,CSS特效,CSS花邊信息三部分內容。其中CSS布局主要是列出一些常用的CSS布局信息點,CSS特效主要是一些動畫示例,CSS花邊是描述了一些CSS…

【c++Leetcode】206. Reverse Linked List

問題入口 time complexity: O(n), space complexity:O(1) ListNode* reverseList(ListNode* head) {ListNode* prev nullptr;ListNode* curr head;while(curr){ListNode* forward curr->next;curr->next prev;prev curr;curr forward;}return prev; } time comp…

虹科Pico汽車示波器 | 汽車免拆檢修 | 2017款東風本田XR-V車轉向助力左右不一致

一、故障現象 一輛2017款東風本田XR-V車,搭載R18ZA發動機,累計行駛里程約為4萬km。車主反映,車輛行駛或靜止時,向右側轉向比向左側轉向沉重。 二、故障診斷 接車后試車,起動發動機,組合儀表上無故障燈點亮&…

數據倉庫崗面試

1.自我介紹 2.求用戶連續登錄3天,要講出多種解法 解法1(使用SQL): SELECTuserid FROMloginrecord WHEREDATEDIFF(day, time, LAG(time) OVER (PARTITION BY userid ORDER BY time)) 1AND DATEDIFF(day, LAG(time) OVER (PARTI…

SQL知多少?這篇文章讓你從小白到入門

個人網站 本文首發公眾號小肖學數據分析 SQL(Structured Query Language)是一種用于管理和處理關系型數據庫的編程語言。 對于想要成為數據分析師、數據庫管理員或者Web開發人員的小白來說,學習SQL是一個很好的起點。 本文將為你提供一個…

ElasticSearch之系統關鍵配置

集群名稱 在配置文件$ES_HOME/config/elasticsearch.yml中指定,樣例如下: cluster:name: logging-prod或者 cluster.name: logging-prod節點的名稱 在配置文件$ES_HOME/config/elasticsearch.yml中指定,樣例如下: node:name:…

frp內網穿透配置以及相關端口、過程解釋

介紹 假設現有外網筆記本、云服務器、內網工作站三臺設備,希望使用外網筆記本通過云服務器轉發,訪問內網工作站;這里使用frp進行內網穿透。 云服務器端配置 登錄騰訊輕量型云服務器控制臺,開放轉發端口、bind_port以及deshboad…

opencv-圖像輪廓

輪廓可以簡單認為成將連續的點(連著邊界)連在一起的曲線,具有相同的顏色或者灰度。輪廓在形狀分析和物體的檢測和識別中很有用。 ? 為了更加準確,要使用二值化圖像。在尋找輪廓之前,要進行閾值化處理或者 Canny 邊界檢…

uni-app小程序 swiper 分頁器樣式修改

小程序中使用 wx-swiper-dot和wx-swiper-dot-active選擇器 H5中使用uni-swiper-dot和uni-swiper-dot-active選擇器 .swiper {height: 408px;margin-bottom: 28rpx;::v-deep .uni-swiper-dot {background: #e7e7e7;&.uni-swiper-dot-active {background: #b1b1b1;}}// #ifde…

php文件上傳例子

目錄結構&#xff1a; index.html代碼&#xff1a; <!DOCTYPE html> <html><head><title>文件上傳</title><meta charset"utf-8"></head><body><form action"./up.php" method"post" encty…

PHP基礎與安全

基礎 1. 簡介概述 ●PHP是腳本語言-是一門弱類型語言&#xff0c;不需要事先編譯 ●PHP 腳本在服務器上執行&#xff0c;然后向瀏覽器發送回純文本的 HTML 結果 ●超文本預處理器&#xff0c;服務器端腳本語 2.創建&#xff08;聲明&#xff09;PHP變量 ● 變量以 $ 符號開…

安防視頻EasyCVR平臺太陽能供電+4G攝像頭視頻監控方案的建設

在工地、光伏、風電站、水庫河道等場景中&#xff0c;以及一些偏遠地區的項目現場&#xff0c;會存在無網無電情況&#xff0c;大大制約了視頻監控系統建設的效率及可行性。在這種場景中&#xff0c;我們也可以通過太陽能供電4G監控攝像機的方案&#xff0c;滿足偏遠地區無網無…