美文网首页
SimpleNews 项目的重构之旅(6) - 命名规范 &am

SimpleNews 项目的重构之旅(6) - 命名规范 &am

作者: 無名小子的杂货铺 | 来源:发表于2017-08-19 21:37 被阅读36次

    案发现场

    之前在做的时候发现 Activity 越来越多,xml 没有可复用的页面,Toolbar 也就相应的多了起来,这时候考虑统一 Toolbar,统一资源 id 命名规则。

    目的

    • 每一个控件有唯一的 id 标示;
    • 同样重复控件也持有唯一资源 id 标示;
    • 消灭代码中不合理的地方(重复、不通用);
    • 见明知意;

    命名规范

    以下为项目中页面布局文件,命名遵守 “类型_页面标示”

    例如:

    以下为具体到一个布局文件中的命名,遵守 “页面_控件类型_id”,也不是完全非要按照规范一字不差,大致命名满足即可。

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
    
        <include
            android:id="@+id/blog_recycle_view_id"
            layout="@layout/recycle_layout"/>
    
        <RelativeLayout
            android:id="@+id/blog_loading_view_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:visibility="gone">
    
            <ProgressBar
                android:id="@+id/blog_progress_bar_id"
                style="@android:style/Widget.ProgressBar.Inverse"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:focusable="false"/>
    
        </RelativeLayout>
    
        <LinearLayout
            android:id="@+id/blog_error_view_id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:orientation="vertical"
            android:visibility="gone">
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:focusable="false"
                android:gravity="center"
                android:text="数据加载失败"/>
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="重新加载"/>
    
        </LinearLayout>
    
    </RelativeLayout>
    

    Toolbar

    我这里先处理一版,抽出一个 ActionBarActivity 来集中处理 Toolbar,之前每个 Activitiy 都会出现 mToolbar,违背了重复代码规则,所以必须要处理。

    例如:

    public abstract class ActionBarActivity extends ThemeActivity {
    
        private Toolbar mToolbar;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(getLayoutId());
            mToolbar = (Toolbar) findViewById(R.id.base_toolbar);
            initToolBar(mToolbar);
        }
    
        protected abstract int getLayoutId();
    
        @Override
        public void setTitle(CharSequence title) {
            if (mToolbar != null) {
                mToolbar.setTitle(title);
            }
        }
    
        @Override
        public void setTitle(int titleId) {
            if (mToolbar != null) {
                mToolbar.setTitle(ResourceUtil.getString(titleId));
            }
        }
    
        public Toolbar getToolbar() {
            return mToolbar;
        }
    }
    

    SimpleNews 项目的重构之旅其他文章

    SimpleNews 项目的重构之旅(1) -项目架构定位 & Gradle 全局配置
    SimpleNews 项目的重构之旅(2) - 整理项目 .gitignore 文件
    SimpleNews 项目的重构之旅(3) -EventBus 接入
    SimpleNews 项目的重构之旅(4) -Gradle for Android 基础知识汇总
    SimpleNews 项目的重构之旅(5) - Android Gradle 打包&混淆应用
    SimpleNews 项目的重构之旅(6) - 命名规范 & Android Toolbar
    SimpleNews 项目的重构之旅(7) - 改头换面&深度清理

    相关文章

      网友评论

          本文标题:SimpleNews 项目的重构之旅(6) - 命名规范 &am

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