android - android 中的 Activity 与 Fragment

标签 android performance android-layout android-activity android-fragments

我是 android 的新手,我很困惑的一件事是 Fragment 与 Activity。现在到处都建议您应该使用 Fragment 而不是 Activity。

这是否意味着我应该将单个 Activity 和每个 UI 元素作为 Fragment 并通过 fragment 事务处理用户操作。

所以我怀疑现在每个应用程序都只有一个 Activity 吗?如果不是,为什么需要额外的 Activity 。

希望我很清楚,如果已经以其他方式回答,我很抱歉。

谢谢

最佳答案

这个问题已经有人问过了。但是,Fragment 是 UI 的一部分。 fragment 依赖于 Activity , Activity 可以根据需要处理任意数量的 fragment 。

我不认为您绝对必须将自己限制为仅进行一项 Activity 。不过,这种模式(1 个 Activity + N 个 fragment )证明对我有用。在我的应用程序(一个简单的问答游戏)中,每个 fragment 都捕获用户操作并通过回调触发异步 Activity 调用。

例子:

  // Implements the main view of the app (home page)
  public class HomeFragment extends Fragment {

    /**
     * A pointer to the current callbacks instance (an Activity).
     */
    private HomeMenuCallbacks callbacks;

    /**
     * Callbacks interface (implemented by the Activity)
     */
    public static interface HomeMenuCallbacks {
        /**
         * Called when an item in the navigation drawer is selected.
         */
        void onHomeMenuItemSelected(int position);
    }    
}

public class MainActivity extends Activity implements
        HomeFragment.HomeMenuCallbacks {

    @Override
    public void onHomeMenuItemSelected(int position) {
      // Do whatever action based on which 
      // item from the home page menu was selected
    }
}

检查此线程以进行讨论并链接到 Android 开发指南:Android - I need some clarifications of fragments vs activities and views

关于android - android 中的 Activity 与 Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399004/

相关文章:

java - 如何在 Java 中向已初始化的对象 [][] 添加新值?

android 获取联系人详细信息,例如号码和缩略图

Linux进程性能监控代理

Android ListView 不滚动

android - 针对高分辨率密集像素设备的媒体查询

android - 正在运行 Android Marketplace Crawler ('hg' 目录?)

android - 相对布局 toLeftOf

android - Android Studio 自动调整 ConstraintLayout 大小

android - JSON.parse 语法错误,但 JSONLint 说它是有效的

c# - 大量客户端和大量数据的 WCF 怎么样?