Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中活动片段中的Access视图_Android_Android Fragments_Android Activity - Fatal编程技术网

Android中活动片段中的Access视图

Android中活动片段中的Access视图,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,这似乎是一个奇怪的问题,但对我来说并不清楚。 我用一个activty和一个片段创建了一个简单的Android项目。 第一个问题:片段是在使用setContentView创建活动的事件中创建的,对吗? 现在,为什么我可以设置位于片段布局中的TextView的文本(例如) 你能澄清一下活动片段的链接吗? 谢谢大家! 罗伯托 片段是在使用setContentView创建活动的事件中创建的,是否正确 我们没有办法知道,因为我们没有你的代码。通过以下两种方式之一将片段添加到活动中: 膨胀包含标记的布局,例

这似乎是一个奇怪的问题,但对我来说并不清楚。 我用一个activty和一个片段创建了一个简单的Android项目。 第一个问题:片段是在使用setContentView创建活动的事件中创建的,对吗? 现在,为什么我可以设置位于片段布局中的TextView的文本(例如)

你能澄清一下活动片段的链接吗? 谢谢大家!

罗伯托

片段是在使用setContentView创建活动的事件中创建的,是否正确

我们没有办法知道,因为我们没有你的代码。通过以下两种方式之一将片段添加到活动中:

  • 膨胀包含
    标记的布局,例如通过
    setContentView()

  • 提交
    FragmentTransaction
    ,使用
    add()
    replace()
    将片段放入活动中

  • 为什么我可以设置位于片段布局中的TextView的文本(例如)

    该活动可以访问其整个视图层次结构。这些单独的视图是否来自
    片段
    列表适配器
    回收视图适配器
    或其他任何地方都无关紧要

    现在,让一个活动操纵由片段创建的视图不是一个好主意——“关注点分离”说片段应该管理自己的视图

    片段是在使用setContentView创建活动的事件中创建的,是否正确

    我们没有办法知道,因为我们没有你的代码。通过以下两种方式之一将片段添加到活动中:

  • 膨胀包含
    标记的布局,例如通过
    setContentView()

  • 提交
    FragmentTransaction
    ,使用
    add()
    replace()
    将片段放入活动中

  • 为什么我可以设置位于片段布局中的TextView的文本(例如)

    该活动可以访问其整个视图层次结构。这些单独的视图是否来自
    片段
    列表适配器
    回收视图适配器
    或其他任何地方都无关紧要


    现在,让活动操纵片段创建的视图不是一个好主意——“关注点分离”说片段应该管理自己的视图。

    如果我正确理解了你的问题

    您有一个包含java文件和xml文件的活动。然后有一个片段,它有自己的java文件和xml文件

    当您的活动启动时,它会像下面这样打开指定的xml文件

    setContentView(R.layout.activity_main);
    
    现在,如果您想使用片段,您应该在活动的xml中有一个框架布局作为片段容器。下面是承载片段的活动的示例

    <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawer"
    android:fitsSystemWindows="true">
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <include
            android:id="@+id/tool_bar"
            layout="@layout/tool_bar">
        </include>
    
        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
        </FrameLayout>
    
    </LinearLayout>
    
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer"/>
    
    然后运行并显示您的片段


    片段被用来分割用户界面代码。因此,一个程序中可以有5个活动和15个片段,而不是20个活动。您可以重用片段并替换它们。例如,我正在进行的当前项目有一个将近800行的主要活动。我不想每次切换屏幕时都再次运行所有这些代码行,所以我制作了一堆片段。主活动仍处于活动状态,片段也处于活动状态,但如果我正确理解了您的问题,我可以在片段之间切换,而无需启动和重新启动一系列活动

    您有一个包含java文件和xml文件的活动。然后有一个片段,它有自己的java文件和xml文件

    当您的活动启动时,它会像下面这样打开指定的xml文件

    setContentView(R.layout.activity_main);
    
    现在,如果您想使用片段,您应该在活动的xml中有一个框架布局作为片段容器。下面是承载片段的活动的示例

    <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawer"
    android:fitsSystemWindows="true">
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <include
            android:id="@+id/tool_bar"
            layout="@layout/tool_bar">
        </include>
    
        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
        </FrameLayout>
    
    </LinearLayout>
    
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer"/>
    
    然后运行并显示您的片段

    片段被用来分割用户界面代码。因此,一个程序中可以有5个活动和15个片段,而不是20个活动。您可以重用片段并替换它们。例如,我正在进行的当前项目有一个将近800行的主要活动。我不想每次切换屏幕时都再次运行所有这些代码行,所以我制作了一堆片段。主活动仍然是活动的,片段也是活动的,但是我可以在片段之间切换,而不是启动和重新启动一堆活动