Comentarios pulgar hacia arriba la función
tabla de la base comentario
En esta tabla se puede especificar un nombre de usuario en postid, en el tiempo pubdate, aite (@xxx) comentó
Pulgares tabla de base de datos es similar
Puede ser descrito, en el tiempo nombre de usuario pubdate, en postid de, la commentid pulgares
Entonces es hacer interfaces de red tal solicitud
Permítanme pulgar hacia arriba función, se encontró con un problema:
Lista de presentación pulgares es un LinearLayout, entró dinámicamente añadir ImageView, pero cuando se utiliza addView añadió, ImageView aparentemente convertirse en el ancho predeterminado match_parent, sólo puede mostrar la última imageview añadido
diseño LinearLayout
< RelativeLayout androide: layout_width = "match_parent" android: layout_height = "40dp" android: paddingTop "20dp" = > < LinearLayout androide: Fondo = "@ estirable / borders1" androide: id = "@ + / Identificación del liked_container" android: layout_width = "wrap_content" android: layout_height "wrap_content" = androide: orientación = "horizontal" android: layout_alignParentStart = "true" >
Agregar dinámicamente imageView, estoy aquí específicamente para imageView añade un color de fondo
para (i en 0 hasta likedList !! .size) { var imageView = NiceImageView ( este ) var avatarImgUrl = baseUrl + likedList [i] .avatar Picasso.get (). carga (avatarImgUrl) .into (imageView) var LinearLayout = findViewById < LinearLayout> (R.id.liked_container) imageView.setBackgroundColor (Color.RED) linearLayout.addView (imageView) }
Una solución sencilla es dirigir cinco imegeview define en el archivo de diseño, y luego dinámicamente ajusta su imageResource como
Pero creo que se puede tratar de ajustar dinámicamente el ancho y la altura de unos imageView
Probé este conjunto
imageView.adjustViewBounds = verdadero var LayoutParams = imageView.layoutParams layoutParams.width = 20 layoutParams.height = 20 imageView.layoutParams = LayoutParams
报错: java.lang.NullPointerException: intento de escribir en el campo 'int android.view.ViewGroup $ LayoutParams.width' en una referencia de objeto nulo
Parece que este es el motivo por el que ImageView crea de forma dinámica, ViewGroup está vacía
Antes de que si hay una manera de establecer los controles de anchura y altura
addView puede aceptar dos parámetros
linearLayout.addView (imageView, params)
segundo parámetro de control puede ser ancho establecido y la altura, los márgenes y similares
params = RelativeLayout.LayoutParams (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
var width = ScreenDimen.getInstance ( este ) .pdToPix (30 ) de altura var = ScreenDimen.getInstance ( este ) .pdToPix (30 ) var rightMargin = ScreenDimen.getInstance ( este ) .pdToPix (30 ) var params = RelativeLayout.LayoutParams (ancho , altura) params.rightMargin = rightMargin linearLayout.addView (imageView, i, params)
Eso es todo
Sin embargo, hay un problema de este tipo, cómo configurar dos imageView de leftMargin o rightMargin?
params.rightMargin = rightMargin
Esto no es válida
No sé por qué no válido. ! embarazosa ! Sin embargo, creo que la forma individual, se dedicó a su acolchado de buena
imageView.setPadding (relleno, 0, relleno, 0)
(Donde relleno se establece en aproximadamente x, que el ancho de alta constante imageView debe ser + x * 4)
Este código se encapsula entonces en una función
diversión updateLikedList () { val recuento = LoadWebData (). getLikedCount (postID, nula ) liked_count.text = "楼主收到$ {count}个赞" si (cuenta == 0 ) { liked_container.visibility = View.GONE } demás { liked_container.visibility = View.VISIBLE val likedList = LoadWebData () loadLikedList (1,5, postID,. nula ); val recuento = LoadWebData (). getLikedCount (postID, nula ) liked_count.text = "楼主收到$ {count}个赞" liked_container.removeAllViews () para (i en 0 hasta likedList !! .size) { var imageView = NiceImageView ( este ) var avatarImgUrl = baseUrl + likedList [i] .avatar Picasso.get (). carga (avatarImgUrl) .into (imageView) var LinearLayout = findViewById <LinearLayout> (R.id.liked_container) // var params = RelativeLayout.LayoutParams (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) var width = ScreenDimen.getInstance ( este ) .pdToPix (42 ) var altura= ScreenDimen.getInstance ( este ) .pdToPix (30 ) de relleno var = ScreenDimen.getInstance ( este ) .pdToPix (3 ) var params = RelativeLayout.LayoutParams (anchura, altura) imageView.setPadding (relleno, 0, relleno, 0 ) LinearLayout .addView (IMAGEVIEW, i, params) } } }
En el punto de alabanza y alabanza punto de cancelación cuando estamos a punto de llamar a esta función se puede lograr de forma dinámica la lista actualizada de los pulgares para arriba
También hay un problema, haga clic en la página de detalles de la publicación, se debe primero determinar si los pulgares del usuario actual hasta este post, si usted tiene los pulgares, a continuación, que deben ser marcadas con un botón rojo, haga clic en el pulgar hacia arriba se cancela de nuevo. De todos modos, es mantener una variable booleana le gusta, y si el punto al igual que, a continuación, le gusta initialize = bastante cierto.
==
Para este Foro No quiero enredar. primero vamos a hacer esta mirada como si, después de un momento perfecto para venir. A continuación, voy a tener que tratar de hacer un centro comercial, y aprender arquitectura, por ejemplo, MVC, MVP y similares, así como la seguridad de red lado de las cosas. Y así los que están preparados, creo que voy a la entrada él!