新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。

有人知道怎么实现吗?

点击左上角按钮,页面滑动,显示如下画面:

YouTube视频


当前回答

这是简单而优雅的:https://github.com/akotoe/android-slide-out-menu.git

快照:

其他回答

这是简单而优雅的:https://github.com/akotoe/android-slide-out-menu.git

快照:

我找到了一个最简单的方法。使用简单的导航抽屉并调用drawer. setdrawerlistner(),并在下面的drawerSlide方法中使用mainView.setX()方法或复制我的代码。

xml文件

 <android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000" >

<RelativeLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">

  <ImageView
      android:layout_width="40dp"
      android:layout_height="40dp"
      android:id="@+id/menu"
      android:layout_alignParentTop="true"
      android:layout_alignParentLeft="true"
      android:layout_marginTop="10dp"
      android:layout_marginLeft="10dp"
      android:src="@drawable/black_line"
      />
</RelativeLayout>


<RelativeLayout
    android:id="@+id/left_drawer"
    android:layout_width="200dp"
    android:background="#181D21"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    >
    </RelativeLayout>
 </android.support.v4.widget.DrawerLayout>

java文件

   public class MainActivity extends AppCompatActivity {
DrawerLayout drawerLayout;
RelativeLayout mainView;
ImageView menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    menu=(ImageView)findViewById(R.id.menu);
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mainView=(RelativeLayout)findViewById(R.id.content_frame);

    menu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            drawerLayout.openDrawer(Gravity.LEFT);
        }
    });

    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            mainView.setX(slideOffset * 300);
        }

        @Override
        public void onDrawerOpened(View drawerView) {

        }

        @Override
        public void onDrawerClosed(View drawerView) {

        }

        @Override
        public void onDrawerStateChanged(int newState) {

        }
    });
 }
}

谢谢你!

我认为facebook应用程序不是用原生代码(我指的是在Android中使用布局的原生代码)编写的,但他们使用了webview,并使用了一些javascript ui库,如sencha。使用sencha框架可以很容易地实现。

经过几个小时的搜索,我发现保罗·格里姆的解决方案可能是最好的。但是它有太多的功能。因此,对于初学者来说,学习汉语可能很难。所以我想提供我的实现,它来自Paul的想法,但它更简单,应该更容易阅读。

通过使用java代码实现侧菜单栏,没有XML

下面是官方android文档中的设计和开发指南,不需要添加非官方的外部库。只有android支持库可以做到。在这里找到链接。

设计和开发。