如何解决小部件列表视图不显示任何内容
我无法在Android的Widget中显示ListView,由于某种原因,(空)Widget不会显示出来,除非在进行调试时否则不会占据主屏幕上的空间。如果我在填充ListView的末尾进行调试,它将正确显示。
这是我的代码:
override fun onUpdate(
context: Context?,appWidgetManager: AppWidgetManager?,appWidgetIds: IntArray?
) {
appWidgetIds?.forEach { appWidgetId ->
var remoteViews = RemoteViews(context?.packageName,R.layout.template_widget_news)
val intent = Intent(context,NewsWidgetViewsService::class.java)
remoteViews.setRemoteAdapter(R.id.widget_recyclerview,intent)
appWidgetManager?.updateAppWidget(appWidgetId,remoteViews)
}
}
RemoteViewsService
class NewsWidgetViewsService : RemoteViewsService() {
override fun onGetViewFactory(intent: Intent): RemoteViewsFactory {
return NewsWidgetProvider(applicationContext,intent)
}}
NewsWidgetProvider
override fun onCreate() {
initWidgetData()
}
private fun initWidgetData() {
var authoritation = ""
localData = LocalData.getInstance(context)
if (Locale.getDefault().displayLanguage.toLowerCase() == m.english) {
lenguaje = "en"
}
context.getSharedPreferences(Constants.appPreferences,Context.MODE_PRIVATE)
?.getString(Constants.accesstoken,"")?.let { tokenSession ->
if (tokenSession.isNotEmpty()) {
authoritation = tokenSession
}
}
serverClient = ServerClient(
context,authoritation,Utilies.getConstant(context.getString(R.string.a)),lenguaje,409,this
)
NewsRepository.processNewData(
context,serverClient,localData
) { success: Boolean,requestednewsData: ArrayList<Entity.New>? ->
if (success && !requestednewsData.isNullOrEmpty()) {
news = requestednewsData
} else {
Log.d("WIDGET","FUNCIONÓ PERO SE MURIÓ")
}
}
}
override fun getCount(): Int {
return if(!news.isNullOrEmpty()){
news?.count()!!
} else {
0
}
}
override fun getViewAt(position: Int): RemoteViews? {
if(position == AdapterView.INVALID_POSITION || news == null) {
return null
}
var remoteViews = RemoteViews(context?.packageName,R.layout.cardview_widget_news)
remoteViews.setTextViewText(R.id.widget_title,news?.get(position)?.title)
remoteViews.setTextViewText(R.id.widget_subtitle,news?.get(position)?.subtitle)
return remoteViews
}
即使我的listview元素称为cardview,我内部也没有cardview,但我查看了Android文档,知道了可以在XML中使用的小部件。
我重申,出于某种未知的原因,除非我使用F8进行流程调试,否则不会显示小部件的列表视图。
有人可以给我建议吗?拜托,谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。