0

我试图FragmentFragmentActivity运行时替换 a 。

片段活动.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

MyFragmentActivity.java

public class MyFragmentActivity extends SlidingFragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_activity);
    }

    // Will be called by AsyncTaskLoader's onLoadFinished.
    public void selectActiveContent() {
        // MyFragment's top level is LinearLayout
        Fragment fragment = new MyFragment();         

        getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commitAllowingStateLoss();
    }

但是,我意识到结果并未优化。

在此处输入图像描述

我意识到FrameLayout通过我自己提供的fragment_activity.xml,正在依附于另一个父母FrameLayout

代替

FrameLayout
    FrameLayout
        LinearLayout
            LinearLayout
            ListView

我希望拥有

FrameLayout
    LinearLayout
        LinearLayout
        ListView

我可以知道我怎么能做到这一点?我有可能fragment_activity.xml没有ViewGroup(FrameLayout) 吗?

4

1 回答 1

0

虽然该<merge>元素是专门为删除无用的视图层次结构而设计的,但根据这个答案,您不能在 Fragments 中使用合并标签,而必须使用您注意到的 ViewGroup 根视图,最轻的重量(即渲染速度最快)是框架布局。

于 2013-03-21T19:13:50.977 回答