Java framelayout中未显示的片段

Java framelayout中未显示的片段,java,android,android-layout,android-fragments,layout-inflater,Java,Android,Android Layout,Android Fragments,Layout Inflater,简介: 为了更好地理解这一点,我尝试使用片段来创建一个数独游戏 数独板由9个子网格组成,每个子网格包含9个单元格,因此一个网格中有9个单元格,其中9个网格形成数独板,以3x3的方式排列 方法: 包含一些信息的主屏幕,其中一个GridLayout包含9个Framelayouts,其中每个数独片段将被放入 这9个数独碎片将组成数独板 sudoku_单元使用onClickListener扩展了LinearLayout,由于扩展了文本视图,我无法对sudoku_单元布局进行充气(有可能吗?) 在我的

简介:

为了更好地理解这一点,我尝试使用片段来创建一个数独游戏

数独板由9个子网格组成,每个子网格包含9个单元格,因此一个网格中有9个单元格,其中9个网格形成数独板,以3x3的方式排列


方法:

包含一些信息的主屏幕,其中一个
GridLayout
包含9个
Framelayout
s,其中每个数独片段将被放入

这9个数独碎片将组成数独板

sudoku_单元
使用
onClickListener
扩展了
LinearLayout
,由于扩展了文本视图,我无法对
sudoku_单元
布局进行充气(有可能吗?)

在我的主要活动中,我有一个包含9个框架布局的GridLayout。这些布局将列和行位置设置为形成一个3x3矩阵,这是每个片段将添加到其中的位置

这些框架布局以基于0的索引命名:
frame00
frame01
frame02
frame10
,等等


文档说明:

如上文所述,我必须具备:

  • 碎片的充气方法,即充气碎片的
    onCreateView()
  • 一个
    布局
    容器,在主活动中(在我的例子中)排序以根目录/放置片段
  • 一个
    FragmentManager
    FragmentTransactionManager
    来处理片段,添加并提交它们

问题:

TL;DR:简单地说,我的片段没有显示出来

调用
commit()
后,我希望看到一块3x3的
sudoku\u网格
片段板,每个片段包含9个
sudoku\u单元。然而,这并没有显示出来

我已经搜索了这么多,重新阅读了文档,搜索了更多,但无法理解为什么没有显示


我试过:

当膨胀我的片段时,我膨胀一个
数独格
布局,这实际上显示了一个9格网格

然而,每个单元格都应该是一个包含9个单元格的网格,这使我相信,
数独网格
-
数独单元格
侧可能存在问题,可能是
数独单元格
布局没有正确膨胀或正确扎根

通常会传递一个
LayoutInflator
,和
ViewGroup
,允许对布局进行充气,但是在
sudoku\u单元格
的情况下,我找不到这样的方法来
覆盖
,这是原因吗


代码:

sudoku\u cell.xml

<?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">
    <TextView
            android:id="@+id/cellText"
            android:layout_width="35dp"
            android:layout_margin="1px"
            android:textSize="18dp"
            android:layout_height="35dp"
            android:textAlignment="center"
            android:textColor="@color/clBlack">
    </TextView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2px"
        android:id="@+id/grid_layout"
        android:columnCount="3"
        android:rowCount="3">

</GridLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="wrap302.nmu.task1.MainActivitySudoku"
        android:background="@color/clDarkGrey">

    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" android:id="@+id/linearLayout2">
        <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textView"
                android:text="@string/app_title"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                android:textColor="@color/clWhite"
                android:textAppearance="@style/TextAppearance.AppCompat.Display1"
                android:textAlignment="center"
                android:textStyle="bold"
                android:fontFamily="sans-serif"/>
        <TextView
                android:text="@string/lblScore"
                android:textColor="@color/clWhite"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" android:id="@+id/lblScore"
                android:textAppearance="@style/TextAppearance.AppCompat.Button" android:textAlignment="center"
                android:layout_marginBottom="5dp"/>
    </LinearLayout>

    <GridLayout
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnCount="3"
            android:rowCount="3"
            android:id="@+id/main_sudokugrid_container">
        <FrameLayout
                android:layout_column="0"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame00"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame01"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame02"/>
        <FrameLayout
                android:layout_column="0"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame10"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame11"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame12"/>
        <FrameLayout
                android:layout_column="0"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame20"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame21"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame22"/>
    </GridLayout>

    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center" android:id="@+id/linearLayout">
        <GridLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:paddingTop="0dp">
            <Button
                    android:layout_row="0"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn1"
                    android:text="1"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn2"
                    android:text="2"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn3"
                    android:text="3"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn4"
                    android:text="4"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn5"
                    android:text="5"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn6"
                    android:text="6"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn7"
                    android:text="7"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn8"
                    android:text="8"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn9"
                    android:text="9"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="3"
                    android:layout_rowSpan="3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="fill_vertical"
                    android:id="@+id/btnClear"
                    android:text="Clear"/>
        </GridLayout>
    </LinearLayout>
</RelativeLayout>
其中9个
sudoku\u单元格
被添加到
sudoku\u网格
,如
onCreateView()
populateGrid()方法中所示:

数独网格.xml

<?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">
    <TextView
            android:id="@+id/cellText"
            android:layout_width="35dp"
            android:layout_margin="1px"
            android:textSize="18dp"
            android:layout_height="35dp"
            android:textAlignment="center"
            android:textColor="@color/clBlack">
    </TextView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="2px"
        android:id="@+id/grid_layout"
        android:columnCount="3"
        android:rowCount="3">

</GridLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="wrap302.nmu.task1.MainActivitySudoku"
        android:background="@color/clDarkGrey">

    <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" android:id="@+id/linearLayout2">
        <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/textView"
                android:text="@string/app_title"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                android:textColor="@color/clWhite"
                android:textAppearance="@style/TextAppearance.AppCompat.Display1"
                android:textAlignment="center"
                android:textStyle="bold"
                android:fontFamily="sans-serif"/>
        <TextView
                android:text="@string/lblScore"
                android:textColor="@color/clWhite"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" android:id="@+id/lblScore"
                android:textAppearance="@style/TextAppearance.AppCompat.Button" android:textAlignment="center"
                android:layout_marginBottom="5dp"/>
    </LinearLayout>

    <GridLayout
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:columnCount="3"
            android:rowCount="3"
            android:id="@+id/main_sudokugrid_container">
        <FrameLayout
                android:layout_column="0"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame00"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame01"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="0"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame02"/>
        <FrameLayout
                android:layout_column="0"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame10"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame11"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="1"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame12"/>
        <FrameLayout
                android:layout_column="0"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame20"/>
        <FrameLayout
                android:layout_column="1"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame21"/>
        <FrameLayout
                android:layout_column="2"
                android:layout_row="2"
                android:layout_width="wrap_content"
                android:background="@color/clWhite"
                android:layout_height="wrap_content" android:id="@+id/frame22"/>
    </GridLayout>

    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center" android:id="@+id/linearLayout">
        <GridLayout
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:paddingTop="0dp">
            <Button
                    android:layout_row="0"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn1"
                    android:text="1"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn2"
                    android:text="2"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn3"
                    android:text="3"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn4"
                    android:text="4"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn5"
                    android:text="5"/>
            <Button
                    android:layout_row="1"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn6"
                    android:text="6"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn7"
                    android:text="7"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn8"
                    android:text="8"/>
            <Button
                    android:layout_row="2"
                    android:layout_column="2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/btn9"
                    android:text="9"/>
            <Button
                    android:layout_row="0"
                    android:layout_column="3"
                    android:layout_rowSpan="3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="fill_vertical"
                    android:id="@+id/btnClear"
                    android:text="Clear"/>
        </GridLayout>
    </LinearLayout>
</RelativeLayout>
MainActivitySudoku.java

public class SudokuCell extends LinearLayout{

    private LinearLayout layout;
    private TextView textView;
    private Context mContext;
    private Point location;
    private int index;

    public SudokuCell(Context context) {
        super(context);
    }

    public SudokuCell(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;

        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layout = (LinearLayout) inflater.inflate(R.layout.sudoku_cell, this, true);

        textView = layout.findViewById(R.id.cellText);
        setText("");
    }

    public void setStaticText(String s){
        if (textView != null) {
            textView.setText(s);
            textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
        }
    }

    public void setText(String s){
        if (textView != null)
            textView.setText(s);
    }

    public Point getLocation() {
        return location;
    }

    public void setLocation(Point location) {
        this.location = location;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
}
public class SudokuGrid extends Fragment{

    private GridLayout gridLayout;
    private List<GridFragmentListener> listeners = new ArrayList<>();
    private Context mActitityContext;
    private boolean FRAGMENT_LOCATION_CENTRE;
    private float SCREEN_DP;
    private int GRID_MARGINS_DP = 1;
    private int colorOdd, colorEven;
    private List<Integer> presetGrid;
    private View previousView;
    private Drawable previousViewDrawable;

    public void addGridListener(GridFragmentListener gridFragmentListener) {
        listeners.add(gridFragmentListener);
    }

    public void removeGridListener(GridFragmentListener gridFragmentListener) {
        listeners.remove(gridFragmentListener);
    }

    protected void notifyValueChanged(View value) {
        for (GridFragmentListener listener : listeners) listener.onValueChange(value);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mActitityContext = getActivity();
        View v = inflater.inflate(R.layout.sudoku_grid, container, false);

        //set grid view
        gridLayout = v.findViewById(R.id.grid_layout);

        populateGrid();
        return v;
    }

    private void populateGrid() {

        for (int i = 0; i < 9; i++) {
            SudokuCell sudokuCell = new SudokuCell(mActitityContext);
            sudokuCell.setBackgroundColor(((i % 2) == 0) ? R.color.clOdd : R.color.clEven);
            System.out.printf("Sudoku Cell ID [ index = " + String.valueOf(i) + " ] - getId() = " + sudokuCell.getId());
            sudokuCell.setLocation(getPoint(i));
            sudokuCell.setIndex(i);
            sudokuCell.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    notifyValueChanged(view);
                }
            });
            sudokuCell.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view, boolean b) {
                    SudokuCell cell = (SudokuCell) view;
                    if (b)
                        view.setBackgroundColor(ContextCompat.getColor(mActitityContext, R.color.clSelected));
                    else
                    view.setBackgroundColor(ContextCompat.getColor(mActitityContext, (cell.getIndex() % 2 == 0) ? R.color.clOdd : R.color.clEven));
                }
            });
            sudokuCell.setStaticText(String.valueOf(i));
            gridLayout.addView(sudokuCell, i);
        }
    }

    private Point getPoint(int i) {
        int y = 0;
        while (i > 2){
            y++;
            i -= 3;
        }
        return new Point(i, y);
    }

    @Override
    public void onStart() {
        super.onStart();
        try {
            addGridListener((GridFragmentListener) getActivity());
        } catch (ClassCastException e) {
            throw new ClassCastException(
                    getActivity().getClass().toString()
                            + " does not implement the DetailsFragment.DetailsFragmentListener interface.");
        }

    }

    @Override
    public void onStop() {
        super.onStop();
        removeGridListener((GridFragmentListener) getActivity());
    }
}
public class MainActivitySudoku extends AppCompatActivity implements GridFragmentListener {

    private FragmentManager fragmentManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_sudoku);
        createSudokuGrid();
    }

    private void createSudokuGrid() {
        fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransactionManager = fragmentManager.beginTransaction();

        fragmentTransactionManager.add(R.id.frame00, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame01, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame02, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame10, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame11, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame12, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame20, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame21, new SudokuGrid());
        fragmentTransactionManager.add(R.id.frame22, new SudokuGrid());

        fragmentTransactionManager.commit();

    }

    @Override
    protected void onStart() {
        super.onStart();
        Toast.makeText(this, "Activity Started & Viewable", Toast.LENGTH_SHORT).show();
    }

    // GridFragmentListener
    @Override
    public void onValueChange(View view) {
        //todo something here with received view
    }
}

事实证明,解决方案比预期的简单

简而言之,解决方案是将SudokuCell构造函数代码从

SudokuCell(Context context, AttributeSet attrs)

SudokuCell(Context context)
因为那是我调用的构造函数

还可以做一些其他的改进,这就解决了无法显示片段的问题


非常简单的错误

好的-我给了你一个如何添加片段以便显示的示例。如果您完成此过程并模拟此过程,这将对您有所帮助。我在布局中使用了一些基本示例,因此我们可以在类中使用ID

您还需要管理应用程序生命周期,并按下“后退”按钮,了解如何使用片段管理堆栈和维护任何数据

活动

public class MyActivity extends Activity {

    Fragment fragment;
    FrameLayout frameLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act_myactivity);
        View view = this.findViewById(android.R.id.content);
        frameLayout = (FrameLayout) findViewById(R.id.frag);

        fragment = new MyFragment();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.frag, fragment);
        fragmentTransaction.commit();
    }
}
活动布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                .../...>
    .../...

    <FrameLayout
        android:id="@+id/frag"
        // sort out your layout here with the frameLayouts
        android:layout_below="@+id/your_id"
    />
    .../...

</RelativeLayout>
碎片布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        .../...>

    // fragment layout
</RelativeLayout>

//片段布局

<>代码>我看到我的主要活动,它包含标题、分数标签和按钮,中间有一个空格。i、 一切都是例外fragments@YvetteColomb是的,1个gridlayout包含FrameLayouts和其他form my按钮。我们关注的第一个网格布局,因为这是片段应该出现/放置的地方。@YvetteColomb是的,按钮正在显示,片段不是(应该包含数独网格片段)@YvetteColomb为了避免讨论,这是我大学课程作业的一部分,其目的是将
片段
与其他
布局
区域设置
共享参考
等一起使用。再次感谢您的帮助!感谢您提供了一个基本的片段框架,同时也注意到应该管理片段堆栈和恢复数据,不过我已经找到了解决方案。我仍然会将您提到的内容纳入我的申请中,谢谢!