在以下活动中,我上面有一个片段和一个图像。片段只是一个较暗的操作栏,上面有图片。我正在尝试将左侧幻灯片菜单作为一个片段,以便可以在每次活动中使用它。
主要活动;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
主要活动XML;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.bassammetwally.egyptianstreets.MainActivity"
android:background="#b12828">
<fragment
android:layout_width="match_parent"
android:layout_height="75dp"
android:name="com.example.bassammetwally.egyptianstreets.Title_bar"
android:id="@+id/fragment"
tools:layout="@layout/title_barmenu"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<ImageView
android:layout_width="100dp"
android:layout_height="50dp"
android:background="@drawable/logo"
android:layout_alignTop="@+id/fragment"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"/>
</RelativeLayout>
每个活动上应包含的标题栏片段;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.view.View;
public class Title_bar extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.title_barmenu, container, false);
}
}
标题栏片段XML;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#8b0404">
</LinearLayout>
如何在标题栏中实现导航抽屉?
尝试这样的操作,对于布局文件,您只需要
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<!-- Main content when drawer is closed -->
<include
layout="@layout/app_bar_nav"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The drawer, you can change the menu contents dynamically -->
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/menu_nav" />
</android.support.v4.widget.DrawerLayout>
实现可以像这样简单。
package com.example;
public class NavigationDrawer extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_drawer);
//You should remove this if you have no intent of using it
//And if you uset it, to prevent double actionbars, use a style with no actionbar
//Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);//I like setting custom actionbar
//setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, "Open drawer", "Close drawer");
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.note_home, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return true;//or super.onOptionsItemSelected, false won't show menu
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
switch (id) {
case R.id.nav_camera:
break;
case R.id.nav_gallery:
break;
case R.id.nav_schedule:
break;
case R.id.nav_manage:
//do someting silly
break;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
[更新] 我通过添加addHeaderView解决了这个问题: ================================ 我的问题就是这么简单! 我想知道如何在导航抽屉中添加标题? 我已经为每个项目创建了带有列表视图(图标文本)的导航抽屉。 非常感谢,
我有一个应用程序,我正在编写,它已经包含了很多代码,我决定我想添加一个导航抽屉到主要的activity工具栏,但我不知道如何做,不创建一个新的导航抽屉项目,复制我的整个项目到它,这似乎是很多工作,有没有一个教程添加导航抽屉到一个现有的项目?
我正在学习android和java的编程,需要一些关于android上“导航抽屉”的帮助。 我正在努力为抽屉项的单击侦听器添加一个switch语句,我使用的代码取自以下示例:http://hmkcode.com/android-creating-a-navigation-drawer/ 我应该如何准确地处理switch语句,以便从触摸其中一个项目开始新的活动? 非常感谢。 编辑 public vo
问题内容: 我想在导航抽屉中的项目旁边有这样设置的图标: 我知道该过程必须涉及将图像视图添加到抽屉式XML的XML文本视图中,但是我不确定该怎么做。做到这一点的最佳方法是什么? 这是我的drawer_list_item.xml: 问题答案: 导航抽屉本质上是一个列表视图。使用所需的任何布局(text + imageview)创建一个drawer_item.xml,并将其传递给arrayAdapte
当我滑动时,吐司起作用,但我尝试添加opendrawer和closerdrawer到左右滑动,但什么也没有发生…
没起作用。 请帮帮忙。这可能是一个愚蠢的问题。但我对Andrdoid还不熟悉。 谢谢