每次在android中单击按钮时,都会复制布局的某些部分

时间:2016-05-24 06:29:21

标签: android android-layout layout

我有一个布局,包含线性布局中的编辑文本字段和微调器。我有相对布局的按钮。所以每次单击按钮我想只复制id为linear_layout_add_more的线性布局部分。这是我的exml布局。

 <LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#D3D3D3"
android:orientation="vertical">


 <android.support.v7.widget.Toolbar
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:theme="@style/Toolbar">
 <Button
        android:id="@+id/next1"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="right|top"
        android:layout_margin="10dp"
        android:background="@drawable/ic_navigate_next" />
</android.support.v7.widget.Toolbar>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:id="@+id/rl_add_more"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/linear_layout_add_more"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:elevation="5dp"
            android:orientation="vertical">

                <Spinner
                    android:id="@+id/type_spinner"
                    android:layout_width="match_parent"
                    android:layout_height="50dp"
                    android:background="@android:drawable/btn_dropdown"
                    android:spinnerMode="dropdown"
                    android:prompt="Slect type"/>



            <EditText
                android:id="@+id/edit_text_add_more_quantity"
                style="@style/App_EditTextStyle"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:layout_marginBottom="10dp"
                android:layout_marginLeft="4dp"
                android:layout_marginRight="4dp"
                android:layout_marginTop="10dp"
                android:backgroundTint="#2FAA96"
                android:hint="Quantity"
                android:imeOptions="flagNoExtractUi"
                android:inputType="number" />


            <EditText
                android:id="@+id/edit_text_add_more_description"
                style="@style/App_EditTextStyle"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:layout_marginBottom="10dp"
                android:layout_marginLeft="4dp"
                android:layout_marginRight="4dp"
                android:layout_marginTop="10dp"
                android:backgroundTint="#2FAA96"
                android:hint="Description"
                android:imeOptions="flagNoExtractUi"
                android:singleLine="true" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:text="Select timer value"
                android:textSize="18sp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:orientation="horizontal"
                android:weightSum="2">

                <EditText
                    android:id="@+id/timer_days"
                    style="@style/App_EditTextStyle"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:backgroundTint="#2FAA96"
                    android:hint="Days"
                    android:inputType="number" />

                <EditText
                    android:id="@+id/timer_hours"
                    style="@style/App_EditTextStyle"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:backgroundTint="#2FAA96"
                    android:hint="Hours"
                    android:inputType="number"
                    android:nextFocusDown="@id/edit_text_add_more_quantity"
                    android:nextFocusUp="@id/edit_text_add_more_quantity" />

            </LinearLayout>


        </LinearLayout>


        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_margin="16dp"
            android:clickable="true"
            android:src="@drawable/icon_add"
            app:backgroundTint="#ee2f5a"
            app:elevation="10dp"
            app:rippleColor="@android:color/white" />
    </RelativeLayout>
</ScrollView>

`

2 个答案:

答案 0 :(得分:0)

在listview布局中移动id为linear_layout_add_more的线性布局部件。并在您的xml中包含此listview。

在按钮上单击增加列表视图项目大小并在listview适配器上调用notifydatasetchanged

答案 1 :(得分:0)

您可以在布局中创建父视图

<LinearLayout
      android:id="@+id/duplicate_view_container"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      >  </LinearLayout>

并创建一个单独的布局,其中包含您想要重复添加的所有视图,例如child_layout.xml。现在,单击按钮可以使child_layout.xml膨胀并将其添加到duplicate_view_container