浏览片段

时间:2015-02-19 07:58:35

标签: android

我的主要活动中有一个片段。我想在运行时动态更新片段的内容。具体来说,我想用按钮背面的新数据填充片段的内容。请帮助我,并建议我如何实现这样的功能。

//main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="@android:color/white"
    android:orientation="vertical"
    android:id="@+id/container">

    <include
        android:id="@+id/app_bar"
        layout="@layout/app_bar" />

    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout xmlns:fab="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <fragment
                android:id="@+id/fragment_recyclerview"
                android:name="com.example.RecyclerViewFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="30dp"
                android:layout="@layout/fragment_recyclerview" />

        </FrameLayout>

        <fragment
            android:id="@+id/fragment_navigation_drawer"
            android:name="com.example.NavigationDrawerFragment"
            android:layout_width="@dimen/drawer_dimen"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:layout="@layout/fragment_navigation_drawer" />
    </android.support.v4.widget.DrawerLayout>
</LinearLayout>

第一个片段是需要更新的片段

2 个答案:

答案 0 :(得分:0)

确定!我将举例说明我在一个项目中所做的事情......

我的主要活动xml包含一个简单的线性布局:

<LinearLayout
    android:id="@+id/layout_images_fragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9"
    android:orientation="horizontal" >
</LinearLayout>

在我的活动OnCreate中,我添加了以下内容:

FragmentImages fragmentImages = new FragmentImages();
getFragmentManager().beginTransaction().add(R.id.layout_images_fragment, fragmentImages).commit();

其中FragmentImages是一个扩展Fragment

的类
public class FragmentImages extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.activity_images, container, false);
        //and here is where I wrote my codes for this fragment
        return v;
    }
}

希望这会有所帮助!!

答案 1 :(得分:0)

@Override
    public void onBackPressed() {
//Find if fragment by tag 
        Fragment fr = fragmentManager.findFragmentByTag("home");
        if (fr.isVisible()) {
        //do ur stuff

        } else {
            fragmentManager.beginTransaction().show(fr).commit();
        }

    }