Vue de navigation de la conception des matériaux

NavigationView (vue de navigation) a deux parties, la tête peut charger une mise en page, la barre de menus peut charger un fichier de menu. Généralement utilisé dans DrawerLayout. NavigationView est fourni par la bibliothèque Design Support, ajoutez d'abord des bibliothèques dépendantes.

    compile 'com.android.support:design:24.2.1'
    compile 'de.hdodenhof:circleimageview:2.1.0'

Deux bibliothèques de dépendances sont ajoutées ici, la première est la bibliothèque Design Support et la seconde est un contrôle open source, qui est utilisé pour afficher l'image sous une forme circulaire;

Ensuite, écrivez un fichier de menu et un fichier de disposition d'en-tête pour charger l'en-tête et la barre de menus de NavigationView.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/call"
            android:icon="@drawable/nav_call"
            android:title="电话"
            />
        <item
            android:id="@+id/friends"
            android:icon="@drawable/nav_friends"
            android:title="好友"
            />
        <item
            android:id="@+id/location"
            android:icon="@drawable/nav_location"
            android:title="位置"
            />
        <item
            android:id="@+id/mail"
            android:icon="@drawable/nav_mail"
            android:title="邮件"
            />
    </group>
</menu>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    android:background="?attr/colorPrimary"
    android:padding="10dp">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/circleImageView"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="33dp"
        android:src="@drawable/mn" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/circleImageView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="13dp"
        android:text="我在等待,一个有你的未来!"
        android:textColor="#fff"
        android:textSize="12sp" />

</RelativeLayout>

Dans le fichier de menu, écrivez d'abord un groupe et le groupe de paramètres ne peut être sélectionné. Un CircleImageView (l'image est modifiée en cercle) et un TextView sont placés dans le fichier de mise en page.

Ajoutez le contrôle NavigationView dans le fichier de mise en page principal:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.navigtionviewtest1.MainActivity">

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/nav_menu"></android.support.design.widget.NavigationView>
</RelativeLayout>

app: headerLayout = ”@ layout / nav_header” charge la vue d'en-tête
app: menu = ”@ menu / nav_menu” charge les options du menu

Notez que xmlns: app = ”http://schemas.android.com/apk/res-auto” ajoute un nouvel espace de noms

Ensuite, écrivez les événements logiques dans le code:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view);
        navigationView.setCheckedItem(R.id.call);//设置默认选中项
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            //设置点击事件
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                Toast.makeText(MainActivity.this, "" + item.getTitle(), Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }
}

Écrivez une description de l'image ici

Publié 34 articles originaux · J'aime 10 · Visites 30 000+

Je suppose que tu aimes

Origine blog.csdn.net/q296264785/article/details/59484607
conseillé
Classement