如何在父布局中多次添加片段?

时间:2015-12-16 11:30:36

标签: java android android-layout animation android-fragments

我想添加一个特定的布局直到14个视图。这样布局可以添加到14次之后。点击下一个目的地后,我有一个下一个目的地布局,应添加此布局。

所以为此我选择了片段。现在我可以添加下一个目标布局的片段onClick。但是当我再次点击下一个目的地布局时没有任何反应。我怎么能把它加到14次?

我有一个删除目标布局。单击此选项,布局应向右滑动,并应通过动画删除。我怎么能实现这个?

我想这样做:enter image description here

GoBoxActivity

    nextDestination.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                //addedDestination.setVisibility(View.VISIBLE);
                //removeDestination.setVisibility(View.VISIBLE);

                fragment = new NextDestinationFragment();
                FragmentManager fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();


        }
    });

片段布局

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_weight="1.00"
    android:background="@android:color/white"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:id="@+id/LinearAddedDestination">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="DESTINATION"
            android:layout_marginStart="20dp"
            android:layout_marginTop="20dp" />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:orientation="horizontal"
            android:background="@drawable/shape"
            android:gravity="right"
            android:layout_gravity="center|right"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="80dp">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/ic_clear_black_18dp"
                android:layout_marginLeft="05dp"
                android:layout_marginTop="05dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="REMOVE"
                android:layout_gravity="center"
                android:layout_marginLeft="05dp"
                android:textSize="14sp"
                android:layout_marginRight="15dp" />
        </LinearLayout>
    </LinearLayout>
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="08dp"
        android:background="@drawable/line2"/>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="20dp"
            android:background="@drawable/ic_place_black_48dp"
            android:layout_marginTop="05dp"
            android:layout_gravity="center" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableEnd="@drawable/ic_chevron_right_black_24dp"
            android:layout_marginEnd="10dp"
            android:text="@string/Loc"
            android:layout_gravity="center"
            android:layout_marginTop="05dp"
            android:textAppearance="@android:style/TextAppearance.Medium"
            android:cursorVisible="false"/>

    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Street/Building/Place"
        android:layout_marginStart="48dp"/>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="20dp"
            android:background="@drawable/ic_description_black_48dp"
            android:layout_marginTop="10dp" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginEnd="10dp"
            android:hint="@string/LocationDetails"/>

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_marginStart="48dp"
        android:hint="@string/HouseDetails" />

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="20dp"
            android:background="@drawable/ic_person_black_48dp"
            android:layout_marginTop="05dp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:text="@string/additionalContact"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:drawableEnd="@drawable/ic_expand_more_black_24dp"
            android:layout_marginTop="08dp"
            android:layout_marginStart="05dp" />
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="60dp"
        android:layout_marginEnd="50dp"
        android:layout_gravity="center"
        android:visibility="gone"
        android:layout_marginTop="20dp">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="Name"
            android:layout_gravity="center"/>

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="Phone"
            android:layout_gravity="center"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="@string/or"
            android:layout_gravity="center"
            android:layout_marginTop="20dp" />

        <LinearLayout
            android:layout_width="220dp"
            android:layout_height="40dp"
            android:background="@drawable/shape"
            android:layout_gravity="center_horizontal">


            <ImageButton
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:background="@drawable/phone2"
                android:layout_gravity="center"
                android:layout_marginStart="30dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="@string/addFromContacts"
                android:layout_gravity="center"
                android:layout_marginStart="20dp" />
        </LinearLayout>

    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_marginLeft="48dp"
        android:hint="@string/contact1"
        android:layout_marginTop="10dp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:focusable="true"
        android:focusableInTouchMode="true">

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_marginStart="20dp"
            android:background="@drawable/ic_description_black_48dp"
            android:layout_marginTop="10dp" />

        <EditText
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginEnd="10dp"
            android:hint="Instruction"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp" />

    </LinearLayout>

</LinearLayout>

有人可以帮忙吗??

2 个答案:

答案 0 :(得分:0)

您需要实现FragmentAdapter才能管理多个片段。然后你必须在某种ListView或ViewPager中膨胀这些片段。请查看thisthat教程。

使用OnTouchListener,您可以实现滑动手势以从List / Pager中删除片段。

希望这会有所帮助。干杯

答案 1 :(得分:0)

您应该使用fragmentManager.beginTransaction().add(R.id.container, fragment)添加新的Fragment并使用remove()将其删除。

对于动画,您可以使用fragmentManager.beginTransaction(). setTransition()设置Android在添加,删除片段时提供的动画。如果要实现自定义动画,可以使用fragmentTransaction.setCustomAnimations(enterAnimation,exitAnimation),并编写两个动画在XML文件中。

希望这可以帮到你。