Trong ứng dụng Android của tôi, nó sẽ tự động lấy nét đầu tiên Button
tôi có trong bố cục của mình, tạo cho nó một đường viền màu cam. Làm cách nào để tôi có thể đặt tiêu điểm ban đầu tốt hơn trong XML, và điều này có thể được đặt thành không?
Câu trả lời:
Bạn có thể sử dụng requestFocus
thẻ:
<Button ...>
<requestFocus />
</Button>
Tôi thấy thật kỳ lạ khi nó tự động lấy nét một trong các nút của bạn, tôi đã không quan sát thấy hành vi đó trong bất kỳ chế độ xem nào của mình.
@Someone Ở đâu đó, tôi đã thử tất cả những cách trên đều không có kết quả. Bản sửa lỗi tôi tìm thấy là từ http://www.helloandroid.com/tutorials/remove-autofocus-edittext-android . Về cơ bản, bạn cần tạo một bố cục vô hình ngay phía trên Nút có vấn đề:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
RelativeLayout
có chứa EditText
.
Đặt cả hai :focusable
và :focusableInTouchMode
thành true và gọi requestFocus
. Nó thực hiện thủ thuật.
Tôi thấy điều này làm việc tốt nhất cho tôi.
Trong AndroidManifest.xml, hãy <activity> element
thêmandroid:windowSoftInputMode="stateHidden"
Điều này luôn ẩn bàn phím khi nhập hoạt động.
Tôi chỉ thêm dòng mã này vào onCreate()
:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Vấn đề đã được giải quyết.
@Someone Somewhere Tôi đã sử dụng điều này để xóa tiêu điểm:
editText.clearFocus();
và nó giúp