新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。
有人知道怎么实现吗?
点击左上角按钮,页面滑动,显示如下画面:
YouTube视频
新的Facebook应用程序和它的导航太酷了。我只是想看看如何在我的应用程序中模仿它。
有人知道怎么实现吗?
点击左上角按钮,页面滑动,显示如下画面:
YouTube视频
当前回答
2012年6月,谷歌在Eclipse ADT插件中添加了“模板”,有一个称为“主/细节流”的模板,它正是这样做的(基于片段)。
其他回答
最近我在开发我的滑动菜单实现版本。它使用流行的J.Feinstein Android库SlidingMenu。
请在GitHub上查看源代码:
https://github.com/baruckis/Android-SlidingMenuImplementation
直接下载app到设备上尝试:
https://play.google.com/store/apps/details?id=com.baruckis.SlidingMenuImplementation
由于注释,代码应该是自解释的。希望对大家有所帮助!;)
我找到了一个最简单的方法。使用简单的导航抽屉并调用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) {
}
});
}
}
谢谢你!
我刚刚为我自己的项目实现了类似的视图。你可以在这里查看
下面是基于我写的库的示例应用程序的屏幕:
使用这个自定义视图作为XML布局的元素是很容易的。这里有一个例子:
<shared.ui.actionscontentview.ActionsContentView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:actions_layout="@layout/actions"
app:content_layout="@layout/content" />
如果你对ActionsContentView库的使用有任何疑问,我可以在项目Wiki上写一篇小文章。
这个库的一些优点:
通过触摸滑动视图的能力 在XML中很容易调整动作栏的大小 支持2.0及以上的所有Android SDK版本
但有一个限制:
所有水平滚动视图都不能在此视图的边界上工作
最好的问候, 史蒂文
我想图书馆没有提到:
jfeinstein10 / SlidingMenu
github的url: https://github.com/jfeinstein10/SlidingMenu。
与动作栏ActionBarSherlock一起工作很好,这有助于向后兼容! 支持右滑,而不仅仅是通过按钮滑!
做了一个现有的实现,并把它变成一个库项目加上示例应用程序。还添加了XML解析以及自动检测可能出现的动作栏,所以它与本机以及支持动作栏,如ActionBarSherlock。
这个也会滑动操作栏!
整个事情是一个图书馆项目与一个示例应用程序,并在一个滑动菜单为Android像谷歌和facebook应用程序的描述。感谢scirocco最初的想法和代码!