#android #arrays #arraylist #android-recyclerview
#Android #массивы #список массивов #android-recyclerview
Вопрос:
Я хочу показывать изображение профиля, как показано в приведенной выше ссылке, только в последнем сообщении каждого последовательного сообщения от одного и того же человека. Пожалуйста, помогите мне с этим.
Я перепробовал много способов, но я не знаю, как скрыть видимость верхних изображений
if (position > 0) {
if (messageList.get(i).getFrom.equalsIgnoreCase(messagesList.get(position - 1).getFrom()))
{
viewHolder.mProfileImage.setVisibility(View.INVISIBLE);
}
else
{
viewHolder.mProfileImage.setVisibility(View.VISIBLE);
}
}
else
{
viewHolder.mProfileImage.setVisibility(View.VISIBLE);
}
Я использовал приведенный выше код и получил этот результат, который показан в этом http://i.stack.imgur.com/92SUb.jpg ссылка. С помощью этого кода я могу скрыть все изображения, отличные от первого изображения. не могли бы вы показать мне, как скрыть изображение верхнего сообщения, а не последнего из streak.
Комментарии:
1. Пожалуйста, добавьте код вашей функции bindViewHolder или полный класс адаптера
2. Bindviewholder содержит в основном этот код для достижения вышеуказанного результата
3. Я использую приведенный выше код, чтобы скрыть изображения из позиции, где getfrom равно getfrom-1 означает, что я оставил только первую позицию, где getfrom равно getfrom, а затем break, а затем снова выполняется тот же код
4. Что я понял из вашего вопроса, так это то, что вам нужно показывать profileImage только тогда, когда это последнее сообщение в строке. Но вы специально в своем коде показываете изображение профиля в первом элементе списка. Я не знаю, содержит ли ваш список сообщений все сообщения или только строку сообщений.
5. если (позиция> 0) { } else {ViewHolder.mProfileImage.setVisibility(Просмотр. ВИДИМАЯ); } другая часть здесь означает, что вы хотите показать изображение профиля в первом сообщении списка.
Ответ №1:
Я должен предположить несколько вещей в моем ответе. т.е.
- MessageList — это список всех сообщений. не список только последовательных / последовательных сообщений.
- вам нужно показать изображения профиля как для отправителя, так и для получателя.
- И вы хотите показывать только изображение профиля последнего последовательного сообщения.
Итак, вот что вы должны сделать.
int length = messageList.lenght; //getTotalLenght;
String fromCurrent = messageList[position].getFrom(); //getFrom of current message being painted or shown
String fromNext = fromCurrent; //next message is set to current by default, to avoid error
if(length > postition 1) {
fromNext = messageList[position 1].getFrom(); //if there is next message then get its sender but if it is the last message then nextSender and currentSender are same as I set its default value to the currentSender.
}
console.log("TAG", "FromNext: " fromNext);
console.log("TAG", "FromCurrent: " fromCurrent);
if(!fromCurrent.equals(fromNext)) { //checking if last message or not
viewHolder.mProfileImage.setVisibility(View.VISIBLE);
}
else {
viewHolder.mProfileImage.setVisibility(View.INVISIBLE);
}
Комментарии:
1. да, список сообщений содержит все сообщения, и вы правильно поняли мой вопрос, но из вашего кода проблема в том, что он скрывает изображение только из последней позиции списка сообщений, а не из последовательного сообщения. Пожалуйста, посмотрите Вывод по этой ссылке: i.stack.imgur.com/h1BPD.jpg в этой ссылке я также хочу скрыть изображение с сообщением 112.
2. Мой код показывает только изображение последней позиции последовательного сообщения и скрывает все остальные изображения.
3. Вы хотите показать только первое изображение последовательного сообщения?
4. с помощью моего кода я получил первое изображение последовательного сообщения, но в вашем коде не отображается изображение последней позиции последовательного сообщения, а отображается только изображение в последней позиции списка сообщений
5. i.stack.imgur.com/h1BPD.jpg как вы можете видеть на этом изображении, ваш код скрывает изображение только в последней позиции адаптера, а не в другой последней позиции последовательного сообщения, например, я также хочу скрыть изображение с сообщением 112