crollview中只允许有一个直接子类
效果图:
代码:
activity_add_update_dish.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AddUpdateDishActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_add_dish_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ScrollView
android:id="@+id/sv_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
android:scrollbars="none"
android:fadingEdge="none"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/toolbar_add_dish_activity"
app:layout_constraintVertical_bias="0.0">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/fl_select_image"
android:layout_width="match_parent"
android:layout_height="@dimen/_200sdp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_dish_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/dish_image_background"
android:scaleType="fitXY"
tools:srcCompat="@tools:sample/avatars" />
<ImageView
android:id="@+id/iv_add_dish_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:padding="@dimen/_16sdp"
app:srcCompat="@drawable/ic_add_a_photo" />
</FrameLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_title"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_title"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fl_select_image">
<EditText
android:id="@+id/et_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_type"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_type"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_title">
<EditText
android:id="@+id/et_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_category"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_category"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_type">
<EditText
android:id="@+id/et_category"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_ingredients"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_ingredients"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_category">
<EditText
android:id="@+id/et_ingredients"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_cooking_time"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_cooking_time_in_minutes"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_ingredients">
<EditText
android:id="@+id/et_cooking_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_direction_to_cook"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:hint="@string/lbl_direction_to_cook"
android:textColorHint="@color/blue_grey_700"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_cooking_time">
<EditText
android:id="@+id/et_direction_to_cook"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textColor="@color/grey_900"
android:textSize="@dimen/_15sdp" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/bt_add_dish"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginBottom="@dimen/_16sdp"
android:layout_marginEnd="@dimen/_16sdp"
android:text="@string/lbl_add_dish"
android:textColor="@color/white"
android:visibility="visible"
android:background="@color/primary_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_direction_to_cook"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
string.xml
<resources>
<string name="app_name">MyKotlin1</string>
<string name="add_dish">Add Dish</string>
<string name="lbl_add_dish">Add DISH</string>
<string name="image_content_description">image</string>
<string name="lbl_title">Title</string>
<string name="lbl_type">Type</string>
<string name="lbl_category">Catefory</string>
<string name="lbl_ingredients">Ingredients</string>
<string name="lbl_cooking_time_in_minutes">Cooking Time In Minutes</string>
<string name="lbl_direction_to_cook">Direction To Cook</string>
<string name="title_select_image_action">Select Image Action</string>
<string name="lbl_camera">Camera</string>
<string name="lbl_gallery">Gallery</string>
</resources>
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="primary_color">#388E3C</color>
<color name="primary_dark_color">#00600F</color>
<color name="primary_light_color">#6ABF69</color>
<color name="dish_image_background">#E1E1E1</color>
<color name="blue_grey_700">#37474f</color>
<color name="blue_900">#212121</color>
<color name="grey_900">#263238</color>
<color name="secondary_color">#81C784</color>
<color name="secondary_dark_color">#519657</color>
<color name="secondary_light_color">#B2FAB4</color>
</resources>