用片段替换视图

时间:2012-02-27 08:40:17

标签: android android-fragments

我正在考虑更改我的解决方案以使用Fragments而不是ActivityGroups,并找到一个示例,它允许我根据位于其上方的ListView更改我的ui部分。我想要做的是有一个ListView,当单击一个项目时,它会替换自己,以便只有新的布局可见 - 这可能吗?

在您的下方,我会看到我正在使用的相关代码示例:

public class FragmentTestActivity extends FragmentActivity implements OnItemClickListener 
{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ListView l = (ListView) findViewById(R.id.number_list);
    ArrayAdapter<String> magzTitles = new ArrayAdapter<String>(getApplicationContext(),
                android.R.layout.simple_list_item_1,
                    new String[]{"Cupcake",
                             "TaberTHULE",
                             "Lite"});
    l.setAdapter(magzTitles);
    l.setOnItemClickListener(this);
}

public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
{
    Fragment testFragment = new TestFragment(position++);
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.the_frag, testFragment);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.addToBackStack(null);
    ft.commit();
}
}

main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frags"
>

<ListView
    android:id="@+id/number_list"
    android:layout_width="150dp"
    android:layout_height="match_parent"
    />

<fragment class="com.android.saket.fragments.TestFragment"
    android:id="@+id/the_frag"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    />

</LinearLayout>

1 个答案:

答案 0 :(得分:2)

这是可能的,我要做的是使用Framelayout作为容器,然后有两个不同的片段将被切换出来(切换发生在你的活动中)。这非常简单,你不应该找到例子。