使用其他小部件创建自定义小部件

时间:2015-07-10 00:45:22

标签: android widget code-reuse reusability

我对Android开发相当新,我很难找到创建可重用代码的最简单方法。我在google上发现了不少文章,android有很多部分和解决方案我很难看到优点和缺点,所以我只想发布我想做的事情,然后看看弹出的是什么。

目前我有:

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

    <RelativeLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <include
            android:id="@+id/toolbar"
            layout="@layout/widget_toolbar"/>

        <ListView
            android:background="@color/amber_A700"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/toolbar">

        </ListView>

    </RelativeLayout>

    <apps.new.app.ui.widget.ScrimInsetsFrameLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/linearLayout"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffffffff"
        android:fitsSystemWindows="true"
        app:insetForeground="#4000" >

        <fragment android:id="@+id/navigation_drawer"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:name="com.example.newapp.NavigationDrawerFragment"
            tools:layout="@layout/frag_nav_drawer" />

    </apps.new.app.ui.widget.ScrimInsetsFrameLayout>

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

基本上我想要的是将它作为一个库,我可以在任何我想要的项目中使用它以更简单的风格:

<android.my.custom.widget
    ...
    app:drawerFragment="drawer_fragment_name"
    ...>

    //Listview would go here

</android.my.custom.widget>

这将允许我设置抽屉片段,自动包含“ScrimInsetsFrameLayout”,自动包含工具栏。基本上我想要一个可重用的库,我可以更新它,它会推送到我使用它的任何应用程序。什么是Android dev的最佳实践?如果这只是一个自定义小部件,我将如何在其中包含其他小部件并在其中插入片段?

最终这将允许我简化代码,只看到这个活动的内容,而不是看到导航抽屉,RelativeLayout和工具栏的一堆样板代码。

我觉得我只是错过了一些明显的东西。

1 个答案:

答案 0 :(得分:0)

您需要创建一个继承自DrawerLayout的新类,夸大您的视图,设置参数。

教程是here