2015-11-12 12 views
3

Я использую NavigationView (android.support.design.widget.NavigationView) в DrawerLayout. Мне интересно, есть ли в любом случае прокрутка по определенному элементу программно, когда пользователь открывает ящик. (В то время как onDrawerOpened() под названием активности)Прокрутите определенное меню. Наверху в navigationView, когда onDrawerOpened() называется

Например, когда пользователь открывает ящик, я хочу MenuItem «action_feedback» в верхней части DrawerLayout (прокручивается вверх).

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/action_current_list" 
     android:checked="true" 
     android:icon="@drawable/ic_current_list" 
     android:title="@string/current_list" /> 
    <item 
     android:id="@+id/action_manage_lists" 
     android:icon="@drawable/ic_my_lists" 
     android:title="@string/my_lists" /> 
    <item 
     android:id="@+id/action_search_products" 
     android:icon="@drawable/ic_search_black_24dp" 
     android:title="@string/search_products" /> 
    <item 
     android:id="@+id/action_deals" 
     android:icon="@drawable/ic_product_promo" 
     android:title="@string/deals" /> 
</group> 
<group android:id="@+id/nav_footer" 
     android:checkableBehavior="single"> 
    <item 
     android:id="@+id/action_feedback" 
     android:icon="@drawable/ic_feeback" 
     android:title="@string/feedback" /> 
    <item 
     android:id="@+id/action_sign_out" 
     android:icon="@drawable/ic_sign_out" 
     android:title="@string/sign_out" /> 
</group> 

Раньше я была Выборочная Layout (ScrollView + ListView) в DrawerLayout, и это было возможно с помощью scrollView.scrollTo (х, у).

Заранее спасибо.

ответ

7
private NavigationView vNavigation; 

// ... 

@Override 
public void onDrawerOpened(View drawerView) 
{ 
    RecyclerView recyclerView = (RecyclerView)vNavigation.getChildAt(0); 
    LinearLayoutManager layoutManager = (LinearLayoutManager)recyclerView.getLayoutManager(); 
    layoutManager.scrollToPositionWithOffset(4, 0); 
} 
+0

Спасибо за голову. Я пробовал этот путь, но не прокрутил элемент вверх. Нужно ли обновлять данные просмотра ресайклеров? Я попробовал recycleView.getAdepter(). NotifyStateChanged(), но не повезло !! – aadi53

+0

Обновлен мой ответ. Предыдущий ответ работал, но он не должен быть видимым вообще. Текущий подход будет работать так же, как прокрутка ListView - и это то, что вы, вероятно, ожидаете. –

+0

Большое спасибо. Это сработало!! – aadi53

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

  • Нет связанных вопросов^_^