【发布时间】:2018-12-22 22:55:12
【问题描述】:
这是用户需要提交的表单。它包含:标题、描述、价格、国家、省份、电子邮件地址和保存按钮。 我会将所有的 EditTexts 和 Save Button 设置为水平的,并在底部设置一个 Next 按钮。 当用户输入标题然后按下一步按钮时,会出现描述输入文本。输入一些描述,按下一步并出现价格,依此类推,直到保存按钮。 我将在屏幕上显示 6 张图像,占据大部分视图,因此我希望编辑文本位于底部。
除了使用水平滚动条之外,我想不出更好的方法,但我真的不想滚动。
前: 标题可见,而其余的 EditText 不可见。当用户输入标题并单击下一步按钮时,标题消失,描述 EditText 出现,依此类推,直到结束。 我只想一次在 EditText 上显示。
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/imagesLayout"
android:layout_width="match_parent"
android:layout_height="400dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_image1"
android:layout_width="50dp"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/iv_image2"
android:layout_width="50dp"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/iv_image3"
android:layout_width="50dp"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/iv_image4"
android:layout_width="50dp"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/iv_image5"
android:layout_width="50dp"
android:layout_height="50dp"/>
<ImageView
android:id="@+id/iv_image6"
android:layout_width="50dp"
android:layout_height="50dp"/>
<TextView
android:id="@+id/tv_multi_selection"
android:layout_width="80dp"
android:layout_height="20dp"
android:background="@color/blue5"
android:text="Images" />
</LinearLayout>
<HorizontalScrollView
android:id="@+id/horizontal_scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/btn_right"
android:fadeScrollbars="false"
android:padding="5dp"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbars="horizontal"
android:layout_below="@+id/imagesLayout">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<EditText
android:id="@+id/input_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Title"
android:inputType="textPersonName"
android:padding="7dp"
android:singleLine="true"
android:textSize="14sp" />
<EditText
android:id="@+id/input_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:ems="10"
android:hint="Description"
android:inputType="textMultiLine"
android:padding="7dp"
android:singleLine="true"
android:textSize="14sp" />
<EditText
android:id="@+id/input_price"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Price"
android:inputType="numberDecimal"
android:padding="7dp"
android:textSize="14sp" />
<EditText
android:id="@+id/input_country"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Country"
android:inputType="textCapWords"
android:padding="7dp"
android:textSize="14sp" />
<EditText
android:id="@+id/input_state_province"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="State/Province/Region"
android:inputType="textCapWords"
android:padding="7dp"
android:textSize="14sp" />
<EditText
android:id="@+id/input_city"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="City"
android:inputType="textCapWords"
android:padding="7dp"
android:textSize="14sp" />
<EditText
android:id="@+id/input_email"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Your Contact Email"
android:inputType="textEmailAddress"
android:padding="7dp"
android:textSize="14sp" />
<Button
android:id="@+id/btn_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="50dp"
android:background="@color/colorPrimary"
android:text="Post"
android:textColor="@android:color/white" />
<ProgressBar
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/progressBar"
android:layout_centerHorizontal="true"
android:layout_marginTop="120dp"
android:visibility="invisible"/>
</LinearLayout>
</HorizontalScrollView>
<Button
android:id="@+id/btn_right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="10dp"
android:layout_marginTop="0dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="20dp"
android:background="@color/colorPrimary"
android:text="Next"
android:textColor="@android:color/white"
android:layout_alignParentBottom="true"
/>
</LinearLayout>
【问题讨论】:
-
你是在问如何让edittext将屏幕焦点切换到下一个控件?
-
@SteelToe 我想一次只显示一个 EditText。 EX:标题可见,其他不可见。当用户输入标题然后单击下一步按钮时,标题消失,描述 EditText 出现,依此类推。
-
为什么不在视图上使用 setVisibilty 方法,传入 View.Gone 隐藏视图,然后使用 View.Visible 显示视图。请参阅此处的文档developer.android.com/reference/android/view/…
标签: android android-layout android-fragments android-edittext