0

Fragment実行時に aを置き換えようとしましたFragmentActivity

fragment_activity.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

どうすればそうできるか分かりますか?(FrameLayout)fragment_activity.xmlなしでを持つことは可能ですか?ViewGroup

4

1 に答える 1

0

この<merge>要素は、ビュー階層の役に立たないレベルを削除するために特別に設計されていますが、この回答によれば、フラグメントでマージタグを使用することはできず、代わりに、気付いたようにViewGroupルートビューを使用する必要があります。 FrameLayout。

于 2013-03-21T19:13:50.977 に答える