美文网首页
从iOS角度思考Android

从iOS角度思考Android

作者: 迷路的安然和无恙 | 来源:发表于2018-01-03 23:47 被阅读82次

前言

在此之前,我一度的认为安卓比iOS麻烦太多了,单是眼花缭乱的设备尺寸就足以让人脑残。但当我开始接触安卓开发之后,从iOS角度去理解Android,才发现,我想的终归是臆测,Android的相对布局,比iOS好用且可以更好的适配屏幕。

下面是一个简单的Demo,进行对比说明。实现的页面比较简单,一个可滚动的视图,如: Snip20180103_1.png
//  Activity文件
class ScrollingActivity : AppCompatActivity() {
//  onCreat方法执行的时机和iOS中的viewDidLoad类似
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_scrolling)
    }
}
布局文件

安卓中控件的创建及布局都在Layout.xml中完成,与iOS中的xib一致,xib也是由xml编写的(切在界面化约束的使用上两者近似),在上述功能中,只需要创建两个xml文件即可。在主xml中,代码如下

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".ScrollingActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppbarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:toolbarId="@+id/toolbar" >

            <android.support.v7.widget.Toolbar
                android:id="@+id/navibar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay"
                />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_scrolling" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end"
        app:srcCompat="@android:drawable/ic_dialog_email"
        />

</android.support.design.widget.CoordinatorLayout>

这里用到的CoordinatorLayout,需要在gradle中引入库implementation 'com.android.support:design:26.1.0'后才能使用。
在上述布局中采用了CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout方式,其实我是完全按照Android Studio给出的Demo抄写了一遍,但是感悟还是很深的,在主xml中有引入了content_scrollingxml文件。

//  content_scrolling文件代码如下
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".ScrollingActivity"
    tools:showIn="@layout/activity_scrolling">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:text="@string/large_text"
        />

</android.support.v4.widget.NestedScrollView>

理解起来就是,创建一个scrollView控件,设置宽高都等于父控件,设置布局行为等于appbar_scrolling_view_behavior,然后添加在主xml中,也就是activiry_scrolling,创建一个TextView并指定宽高及需要显示的内容。

ok,布局结束。

是的,在安卓中的布局就这么多内容。
让我觉的安卓的布局代码真的很清爽。至于布局的layout属性,我也在慢慢学习中,后面慢慢深入学习再做笔记。

相关文章

网友评论

      本文标题:从iOS角度思考Android

      本文链接:https://www.haomeiwen.com/subject/zxtlnxtx.html