2017-02-14 18 views
-2

Я не знаю, как начать замысел ImageButton на nav_header_main. Я должен добавить новый класс java или просто использовать MainActivity.java Пожалуйста, помогите мне. СпасибоКак настроить изображение кнопки в заголовке навигационного ящика

example on the image

+0

сделал и попробовать что-нибудь? код? – rafsanahmad007

ответ

1

Вот XML код nav_header_main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/nav_header_height" 
    android:background="@drawable/side_nav_bar" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton" 
     android:layout_gravity="right" /> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="bottom"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingTop="@dimen/nav_header_vertical_spacing" 
      android:src="@android:drawable/sym_def_app_icon" /> 
    </LinearLayout> 

</LinearLayout> 

Вы можете получить доступ к этой кнопке из MainActivity OnCreate() после NavigationView инициализации.

ImageButton ib = (ImageButton)navigationView.findViewById(R.id.imageButton); 
ib.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View view){ 
     //DO YOUR CODE 
    } 
}); 
+0

Я положил этот код в нижней части 'НавигацияПросмотреть навигациюView = (NavigationView) findViewById (R.id.nav_view); navigationView.setNavigationItemSelectedListener (this); ' Но когда я бегу, это сила, близкая к –

+0

Спасибо вам за работу! –

+0

это не работает с образцом andorid studio 2.3 – Webserveis

-2

Получить идентификатор вашего изображения.

ImageButton button = (ImageButton)findViewById(R.id.imageButton); 
button.setOnClickListener(new View.OnClickListener(){ 
@Override 
public void onClick(View view){ 
Intent intent = new Intent(getApplicationContext(),YourClass.class); 
startActivity(intent,0); 
} 
}); 
1

Испытываю navigationView.findViewById с автоматическим генерировать образец с Android stduio, а не работать правильно.

Другое решение

NavigationView navigationView = findViewById(R.id.nav_view); 
navigationView.setNavigationItemSelectedListener(this); 

ImageButton ib = (ImageButton)navigationView.getHeaderView(0).findViewById(R.id.imageButton); 
ib.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View view){ 
     //DO YOUR CODE 
    } 
});