Vấn đề của tôi là thông báo lỗi trong EditTexts của tôi đang cuộn trên đầu thanh tác vụ. Đây có phải là lỗi android hay tôi đang làm gì đó sai?Android setError() di chuyển thư trên đầu trang của ActionBar
Ngoài ra lỗi này xảy ra ngay cả khi bàn phím bị hỏng, nó chỉ xảy ra ở trên các ảnh chụp màn hình.
Đây là những gì tôi đang nói về: http://imgur.com/fG8bd3E,uFzhOXa#1 < - có hai hình ảnh
Dưới đây là cách bố trí của tôi, tôi thêm EditTexts trong mã của tôi vào LinearLayout kiosk_form_table
<ScrollView
style="@style/DefaultBackground"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:fadeScrollbars="false"
android:padding="20dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingRight="20dp" >
<LinearLayout
android:id="@+id/kiosk_form_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<Button
android:id="@+id/kiosk_submit_large"
style="@style/LoginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:onClick="submit"
android:text="@string/submit" />
</LinearLayout>
</ScrollView>
Làm thế nào tôi thêm EditTexts
kiosk_form.addView(getKioskRow(R.layout.kiosk_text_row, "First Name", true, null));
private View getKioskRow(int layout, String header, boolean required, String buttonName)
{
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(layout, null);
view.setTag(required);
addHeader((TextView) inflater.inflate(R.layout.field_header, null), header);
if (required)
((TextView) view.findViewById(R.id.kiosk_input)).setHint("Required");
if (buttonName != null)
((Button) view.findViewById(R.id.kiosk_input_button)).setText(buttonName);
return view;
}
private void addHeader(TextView view, String header)
{
view.setTag(false);
view.setText(header);
kiosk_form.addView(view);
}
Làm thế nào tôi thiết lập các lỗi
(TextView) view).setError(getString(R.string.error_field_required));
Tôi muốn thông báo lỗi xuất hiện trên nhiều chế độ xem là tất cả phân lớp của TextView vì vậy nếu bạn xem đoạn mã cuối cùng của mình, tôi thêm thông báo lỗi vào chế độ xem của mình, một số là chỉnh sửa văn bản. Vấn đề của tôi không phải là lỗi không hiển thị. Lỗi của tôi là khi tôi cuộn, thông báo bật lên nằm trên đầu thanh hành động như được thấy trong liên kết imgur của tôi (Tôi mới tham gia cộng đồng, vì vậy tôi không có đủ danh tiếng để nhúng liên kết). – Sagar
Ohhh ok tôi hiểu rồi. Đây là một giải pháp khả thi: bạn có thể ẩn thông báo lỗi khi người dùng đang cuộn chế độ xem. Khi cuộn xong, bạn có thể thiết lập lại thông báo lỗi và nó sẽ xuất hiện ở đúng vị trí! Dưới đây là cách bạn có thể phát hiện khi cuộn xong: http://stackoverflow.com/questions/2089552/android-how-to-detect-when-a-scroll-has-ended – Oleksiy
Hmm, tôi có thể thấy rằng hoạt động. Chỉ cần ra khỏi tò mò bạn có biết một cách nhanh chóng để tắt tất cả các thông báo lỗi, hoặc nếu đó là thậm chí có thể. Tôi hỏi vì ngay bây giờ tôi lặp qua một số lượng lớn các lượt xem để điền vào biểu mẫu đó và tôi muốn tránh phải lặp qua danh sách để tắt thông báo lỗi mỗi khi người dùng cuộn. Bất kể cảm ơn vì sự giúp đỡ! – Sagar