SpannableStringBuilder不会显示FirebaseKotlin中每个数据的图像范围

问题描述

我从FireBase检索数据,并尝试在每个数据(TextView)旁边显示图像。但是图像仅显示在第一个数据上。

这是输出

enter image description here

我希望每个数据都有一个图像。

这是我的代码

val database = FirebaseDatabase.getInstance().reference

val getData = object : ValueEventListener {
     override fun onDataChange(snapshot: DataSnapshot) {
     
          val myData = SpannableStringBuilder()

          for (i in snapshot.children) {
               val data = i.child("myData").value

               myData.append("$data\n\n")
               
               // Get image from drawable and set size
               val drawable: Drawable? = context?.let { ContextCompat.getDrawable(it,R.drawable.myImage) }
               drawable?.setBounds(0,textView.lineHeight,textView.lineHeight)
               
               // Set image span to the first letter
               val span: ImageSpan? = drawable?.let { ImageSpan(it,ImageSpan.ALIGN_BASELINE) }
               myData.setSpan(span,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
          }

          textView.text = myData
     }

     override fun onCancelled(error: DatabaseError) {

     }
}

database.addValueEventListener(getData)

解决方法

问题出在 { "name": "equality-mh","version": "0.0.0","scripts": { "ng": "ng","lint": "ng lint","e2e": "ng e2e","test": "echo \"Error: no test specified\" && exit 1","tsc": "tsc -p src -w","start": "live-server --open=src","build-prod": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng build --prod","build-prod-aot": "node --max_old_space_size=5048 ./node_modules/@angular/cli/bin/ng build --prod --aot --build-optimizer --configuration=production" },"private": true,"dependencies": { "@angular/animations": "^8.2.0","@angular/cdk": "^8.1.2","@angular/common": "~8.2.0","@angular/compiler": "~8.2.0","@angular/core": "~8.2.0","@angular/flex-layout": "^8.0.0-beta.26","@angular/forms": "~8.2.0","@angular/material": "^8.1.2","@angular/platform-browser": "~8.2.0","@angular/platform-browser-dynamic": "~8.2.0","@angular/router": "~8.2.0","@ng-select/ng-select": "^3.7.0","@ngx-translate/core": "^11.0.1","@ngx-translate/http-loader": "^4.0.0","@nicky-lenaers/ngx-scroll-to": "^3.0.1","adyen-api-js": "^1.30.4","angular-6-social-login": "^1.1.1","angular-google-charts": "^0.1.6","angular-morris-js": "^1.1.0","angular-tinymce": "^6.0.0","angular2-image-zoom": "^1.2.1","angular2-masonry": "^0.4.0","angular2-notifications": "^2.0.0","chart.js": "^2.9.3","classlist.js": "^1.1.20150312","html2canvas": "^1.0.0-rc.5","http": "0.0.0","imagesloaded": "^4.1.4","jquery": "^3.4.1","jw-angular-social-buttons": "^1.0.0","ng-lazyload-image": "^7.0.1","ng2-charts": "^2.3.0","ng6-file-upload": "^1.1.0","ngx-bootstrap": "^5.1.1","ngx-editor": "^4.1.0","ngx-emoji-picker": "0.0.2","ngx-facebook": "^2.4.0","ngx-image-cropper": "^2.0.2","ngx-infinite-scroll": "^8.0.1","ngx-mat-select-search": "^2.1.1","ngx-skeleton-loader": "^1.2.6","ngx-slick": "^0.2.1","primeicons": "^2.0.0","primeng": "^8.0.2","quill": "^1.3.6","rxjs": "^6.5.2","rxjs-compat": "^6.5.2","socket.io-client": "^2.3.0","stripe-angular": "^1.1.0","swiper": "^5.2.0","tinymce": "^5.0.14","ts-md5": "^1.2.4","tslib": "^1.10.0","web-animations-js": "^2.3.2","zone.js": "~0.9.1" },"devDependencies": { "@angular-devkit/build-angular": "~0.803.29","@angular/cli": "~8.3.29","@angular/compiler-cli": "~8.2.0","@angular/http": "^7.2.15","@angular/language-service": "~8.2.0","@types/jasmine": "~3.3.8","@types/jasminewd2": "~2.0.3","@types/node": "~8.9.4","codelyzer": "^5.0.0","jasmine-core": "~3.4.0","jasmine-spec-reporter": "~4.2.1","karma": "~4.1.0","karma-chrome-launcher": "~2.2.0","karma-coverage-istanbul-reporter": "~2.0.1","karma-jasmine": "~2.0.1","karma-jasmine-html-reporter": "^1.4.0","protractor": "~5.4.0","ts-node": "~7.0.0","tslint": "~5.15.0","typescript": "~3.5.3","webpack-cli": "^3.3.12" } } 。 您始终将图像跨度设置为整个字符串的第一个。做这样的事情:

myData.setSpan(span,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...