2017-11-17 2 views
0

individuelles Design Listenansicht Blog BildCustom Design Listview Positionsfehler

image

Ich möchte etwas schaffen, wie im Bild oben dargestellt, in dem neuesten Blog zeigen und andere die alternative Layout folgen.

ich habe die ungerade sogar folgen Schleife erstellt, aber es funktioniert nicht, wenn das Listview Scrollen es von der ersten Position lädt,

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (inflater == null) 
     inflater = (LayoutInflater) activity 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    int layoutResource = 0; // determined by view type 
    int viewType = getItemViewType(position); 
    switch (viewType) { 
     case 0: 
      layoutResource = R.layout.news_row; 
      break; 

     case 0: 
      layoutResource = R.layout.news_row_even; 
      break; 

     case 1: 
      layoutResource = R.layout.news_row_odd; 
    } 
    if (convertView == null) 
     convertView = inflater.inflate(layoutResource, null); 

    TextView txtNewsTitle = (TextView) convertView.findViewById(R.id.news_title); 
    txtNewsTitle.startAnimation(AnimationUtils.loadAnimation(this.activity, R.anim.fade_in)); 
    txtNewsTitle.setTypeface(Utils.getTypeFace(Utils.Fonts.ROBOTO)); 


    TextView txtMessage = (TextView) convertView.findViewById(R.id.message); 
    txtMessage.setTypeface(Utils.getTypeFace(Utils.Fonts.ROBOTO)); 
    txtMessage.startAnimation(AnimationUtils.loadAnimation(this.activity, R.anim.fade_in)); 


    TextView txtAgo = (TextView) convertView.findViewById(R.id.ago); 
    txtAgo.setTypeface(Utils.getTypeFace(Utils.Fonts.ROBOTO)); 
    txtAgo.startAnimation(AnimationUtils.loadAnimation(this.activity, R.anim.fade_in)); 

    int MAX_WIDTH = Utils.getScreenWidth()/2; 
    int MAX_HEIGHT = MAX_WIDTH; 

    final PNewsData news = (PNewsData) getItem(position); 
    int n = 0; 

    Log.e("position", String.valueOf(position)); 

    txtNewsTitle.setText(news.title); 
    txtMessage.setText(news.description.substring(0, Math.min(news.description.length(), 120)) + "..."); 
    txtAgo.setText(news.added); 


    if (news.images.get(0).path != null) { 
     p.load(Config.APP_IMAGES_URL + news.images.get(0).path) 
       .transform(new BitmapTransform(MAX_WIDTH, MAX_HEIGHT)) 
       .into(imgNewsPhoto); 
    } 


    return convertView; 
} 

Antwort

1

Zuerst GLEICHRcase NO.

  case 0: 

      layoutResource = R.layout.news_row; 
      break; 

     case 1: 

      layoutResource = R.layout.news_row_even; 
      break; 

     case 2: 
      layoutResource = R.layout.news_row_odd; 
0

ersetzen diese:

if (convertView == null) 
convertView = inflater.inflate(layoutResource, null); 

mit:

if (convertView == null) 
LayoutInflater inflater = getContext().getLayoutInflater(); 
convertView = inflater.inflate(layoutResource, null); 
+0

@IntelliJ Amiya Weil OPs vergessen, dies zu markieren und ging dort aus, wo niemand zurückgibt: D –

+0

@IntelliJAmiya Kumpel Dank, aber ich nicht fälschen Ruf will, muss ich den Menschen hilft gerne und ja, es fühlt sich gut an, wenn ich dafür einen guten Ruf bekomme. –

+0

@IntelliJAmiya Ok Kumpel ich entfernt. Bleib glücklich n gesegnet :) –

0

Zunächst einmal gibt es einen Fehler in switch-Anweisung. dupliziert Fall 0. Und, fügen Sie es

@Override 
public int getViewTypeCount() { 
    return 3; 
}