je développe une application pour envoyer et recevoir des messages en utilisant les messages firebase apparaissent agréable et propre quand tous les messages sont du même côté ..Articles de liste de liste change tout en faisant défiler dans Android .. Comment l'éviter?
adaptar:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.item_message, parent, false);
}
ImageView photoImageView = (ImageView) convertView.findViewById(R.id.photoImageView);
TextView messageTextView = (TextView) convertView.findViewById(R.id.messageTextView);
TextView authorTextView = (TextView) convertView.findViewById(R.id.nameTextView);
LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.image_container);
FriendlyMessage message = getItem(position);
boolean isPhoto = message.getPhotoUrl() != null;
if (isPhoto) {
messageTextView.setVisibility(View.GONE);
layout.setVisibility(View.VISIBLE);
layout.setMinimumHeight(200);
photoImageView.setVisibility(View.VISIBLE);
Glide.with(photoImageView.getContext())
.load(message.getPhotoUrl())
.into(photoImageView);
} else {
messageTextView.setVisibility(View.VISIBLE);
photoImageView.setVisibility(View.GONE);
layout.setVisibility(View.GONE);
layout.setMinimumHeight(0);
messageTextView.setText(message.getText());
}
messageTextView.setText(message.getText());
authorTextView.setText("." + message.getName());
return convertView;
Mais je veux avoir les utilisateurs propres messages dans le côté droit écrit alors un code qui est en gras ci-dessous, il fonctionne très bien au début et à défiler tous les quarts de travail à droite .. essayé overridding getviewcounttype mais ne peux pas être correctement mis en œuvre ... les solutions pour changer le code ou pour empêcher déplacement des articles ..
This Image is working fine at first
Upon Scroll all gets moved to right
C'est le code ci-dessus change
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.item_message, parent, false);
}
ImageView photoImageView = (ImageView) convertView.findViewById(R.id.photoImageView);
TextView messageTextView = (TextView) convertView.findViewById(R.id.messageTextView);
TextView authorTextView = (TextView) convertView.findViewById(R.id.nameTextView);
LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.image_container);
FriendlyMessage message = getItem(position);
boolean isPhoto = message.getPhotoUrl() != null;
if (isPhoto) {
messageTextView.setVisibility(View.GONE);
layout.setVisibility(View.VISIBLE);
layout.setMinimumHeight(200);
photoImageView.setVisibility(View.VISIBLE);
Glide.with(photoImageView.getContext())
.load(message.getPhotoUrl())
.into(photoImageView);
} else {
messageTextView.setVisibility(View.VISIBLE);
photoImageView.setVisibility(View.GONE);
layout.setVisibility(View.GONE);
layout.setMinimumHeight(0);
messageTextView.setText(message.getText());
}
//Modified part to displaying messages on right
try {
if (user.getDisplayName().equalsIgnoreCase(message.getName())) {
System.out.println("At Gravity" + user.getDisplayName().toString() + message.getName());
messageTextView.setGravity(Gravity.RIGHT);
authorTextView.setGravity(Gravity.RIGHT);
layout.setGravity(Gravity.RIGHT);
messageTextView.setMaxWidth(200);
authorTextView.setTextColor(Color.CYAN);
}
} catch (NullPointerException e) {
System.out.println("Exception catched");
}
messageTextView.setText(message.getText());
authorTextView.setText("." + message.getName());
return convertView;
possible Tout correctif pour ce problème ???
Merci pour la réponse ... Oui à l'aide d'autre est simple et fonctionne parfaitement son ... est embrouillé par de nombreuses autres méthodes publiées par d'autres comme remplaçant GetCount et des choses ... – user8645931