添加新的布局,片段还是新的Acitvity?

时间:2017-03-05 13:25:32

标签: java android

我正在创建20页的应用程序(从页面到页面轻扫),在阅读了一些信息后,我终于弄清楚了什么是最好的解决方案。

  1. 只创建新的布局并将它们添加到同一个MainActivity中?

  2. 每次创建新的Activity +新布局?

  3. 创建片段并将它们添加到同一个MainActivity中?

  4. 片段和布局之间的实际区别是什么?

    Java中用于添加新布局/片段的代码是什么?

    感谢。

2 个答案:

答案 0 :(得分:1)

如下所示创建活动主页面以使用碎片。

<?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="com.example.myproj.activity.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="wrap_content"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay">

            </android.support.v7.widget.Toolbar>

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


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <FrameLayout
                android:id="@+id/container"
                android:name="com.example.HomeFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </RelativeLayout>
    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

//设计你的片段

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:clickable="true">
.....
.....
.....
</LinearLayout>

// JAVA

  public class MainActivity extends AppCompatActivity{
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             ...
              // call MyFragment page here
            }
    .....
    .....
    .....
    }

//片段

    public class MyFragment extends Fragment{
        View view;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstantState){
            view = inflater.inflate(R.layout.fragment_page,container,false);
    ...

      return view;
        }
}

答案 1 :(得分:0)

布局只是xml资源,用于定义布局在屏幕上的外观。碎片完全不同。将片段视为具有与之关联的布局的迷你活动。就像活动一样,当创建片段时,它们会使布局膨胀,然后渲染该布局。然而,片段需要附加到一个Activity上,没有它就不能存在。

对您而言,最佳解决方案是在ViewPager内使用片段,这样您就可以从左向右滑动(反之亦然)并拥有无限数量的页面