Android DrawerLayout 侧滑菜单

侧滑菜单是Android应用中出现的比较多的功能,下面来看一下是怎么实现的。 Android Studio里面有现成的模板,给项目取名TestSlidePage,可以看一下它生成的东西 从MainActivity里面看一下主要的布局文件setContentView(R.layout.activity_main);是activity_main。 而activity_main.xml里面的内容如下: <?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 TabLayout

以前要实现Android选项卡视图,基本上使用的是TabHost,不过谷歌已经不推荐使用了。现在比较普遍的是采用TabLayout实现选项卡布局。 布局 首先,在你的布局文件里,添加一个TabLayout布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"…

Android标题栏、状态栏

ActionBar vs ToolBar ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,具有可定制性、灵活性、Material Design风格等优点。官方考虑到仍有一部分用户的手机版本号低于5.0,所以,ToolBar也放进了support v7包内,使得低版本的系统也能使用上ToolBar。 使用Android Studio新创建一个项目的话,默认MainActivity是使用的Toolbar,看一下MainActivity的布局文件 看一下manifest里面对MainActivity的声明 MainActivity声明自己的theme是NoActionBar,表示是没有标题栏,而布局文件中又有ToolBar,toolbar就起到了标题栏的作用。 在onCreate的时候设置如下代码,就可以把ActionBar上的所有操作都转移到ToolBar上。 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); 在这个新创建的项目中,可以看一下res/values/colors.xml里面的内容,有三个color值,其中colorPrimary是标题栏的颜色,colorPrimaryDark是状态栏的颜色。 在5.0及以上是能设置状态栏的颜色的,在5.0以下状态栏的颜色一般都是黑色。 ActionBar与Theme 1.…

让Android状态栏透明

android 4.4 (KITKAT)之后,Android Window支持了一些新属性,其中两个属性是 WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION 即让状态栏和标题栏透明。试试这两个属性。 1.创建工程的时候选择NavigationView模板 2.使用android studio自动生成的代码,在真机上运行起来是这样的 看到main.xml的布局是DrawerLayout + NavigationView <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="…

Android ScrollView fillViewport让滚动控件充满屏幕

看一下下面这个布局在真机上跑起来之后的样子: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/red" > <LinearLayout xmlns:…

Android LaunchMode

页面跳转的时候,假如说之前已经有这个页面了,再次生成这个页面好像有点傻傻的,为什么不直接用前面已经生成的那个页面呢。这就要说到activity的启动模式。 android四种launchMode AndroidManifest里设计了四种启动模式,分别是: standard singleTop singleTask singleInstance standard 标准模式 默认的启动模式,如果不在Manifest.xml里面为某个activity指定android:launchMode,那个就默认是standard。这种模式下,每次都会创建新的实例。 这种模式下,谁启动了这个activity,那么这个Activity就运行在启动它的那个activity所在的栈中。 以Demo来举例,假如说有A,B,C三个Activity(其中A是MainActivity),顺序是A -> B -> C -> A,他们之前的跳转都使用startActivity(new Intent(xxx,xxx)),且不调用finish。 那么这个过程中任务栈是这样的: 每次都是新生成一个实例。 如果在最后一个图之后,按下硬件的后退键,那么呈现的顺序就是从上到下的。…