2015-02-27 5 views
0

Я добавил статический макет над Listview и инвалидов headerview мыши с помощьюListView вопрос Селектор товара при использовании addHeaderView()

View view = View.inflate(MainActivity.this, R.layout.drawer_header, 
      null); 
    mDrawerList.addHeaderView(view, null, false);//mDrawerList is Listview 

Чтобы избежать пункта проблемы позиции я добавил

private class SlideMenuClickListener implements 
     ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
      long id) { 
     position -= mDrawerList.getHeaderViewsCount(); 
     Log.i("TAG POSITION", String.valueOf(position)); 
     displayView(position); 
    } 
} 

В Listview onitemclick , Теперь его загрузка правильных фрагментов в соответствии с Listview Item. Но у меня другая проблема с проблемой list_selector. Выдвижной ListView является

<ListView 
    android:id="@+id/list_slidermenu" 
    android:layout_width="270dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@color/list_background" 
    android:choiceMode="singleChoice" 
    android:divider="@color/list_divider" 
    android:dividerHeight="1dp" 
    android:listSelector="@drawable/list_selector" /> 

Когда я нажимаю позицию «1», то list_selctor применяется на позицию «0», если я нажму позицию «2», то list_selector применяется на позиции «1» и так далее ...

адаптер класса ..

public class NavDrawerListAdapter extends BaseAdapter { 

private Context context; 
private ArrayList<NavDrawerItem> navDrawerItems; 

public NavDrawerListAdapter(Context context, ArrayList<NavDrawerItem> navDrawerItems){ 
    this.context = context; 
    this.navDrawerItems = navDrawerItems; 
} 

@Override 
public int getCount() { 
    return navDrawerItems.size(); 
} 

@Override 
public Object getItem(int position) {  
    return navDrawerItems.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (convertView == null) { 
     LayoutInflater mInflater = (LayoutInflater) 
       context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
     convertView = mInflater.inflate(R.layout.drawer_list_item, null); 
    } 

    //ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); 
    TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 
    TextView txtCount = (TextView) convertView.findViewById(R.id.counter); 

    //imgIcon.setImageResource(navDrawerItems.get(position).getIcon());   
    txtTitle.setText(navDrawerItems.get(position).getTitle()); 

    // displaying count 
    // check whether it set visible or not 
    if(navDrawerItems.get(position).getCounterVisibility()){ 
     txtCount.setText(navDrawerItems.get(position).getCount()); 
    }else{ 
     // hide the counter view 
     txtCount.setVisibility(View.GONE); 
    } 

    return convertView; 
} 

} 

Пожалуйста, помочь решить эту проблему

ответ

0

у меня нет каких-либо проблем с получением правильного положения, даже если у меня есть заголовок, который не clickab ле. Попробуйте удалить это и показать товар в списке:

position -= mDrawerList.getHeaderViewsCount(); 
+0

Но у меня проблема. Можете ли вы указать свой рабочий код с заголовком listview, где вы также использовали селектор списка? –

+0

@demo_Ashif вы попробовали то, что я предложил? –

+0

да и всегда загружать следующий фрагмент –

Смежные вопросы