Tôi có một cửa sổ hộp thoại bao phủ 1/3 chiều cao toàn màn hình và được hiển thị trên đầu hoạt động của tôi. Hộp thoại chứa hai trường AutoCompleteTextView.Danh sách lựa chọn bị cắt trong AutoCompleteTextView trong Hộp thoại
Sự cố mà tôi đang gặp phải là khi người dùng bắt đầu nhập nội dung vào AutoCompleteTextView, danh sách có tất cả các đề xuất chỉ hiển thị ở cuối phần cuối của hộp thoại, nhưng không vượt quá danh sách đó . Có vẻ như nó bị cắt. (ảnh chụp màn hình bên trái)
Chỉ sau khi tôi nhấn và giữ một mục từ danh sách đề xuất, danh sách sẽ được hiển thị ở độ dài đầy đủ. (Ảnh chụp màn hình bên phải)
Screenhot là tại địa chỉ: http://img704.imageshack.us/i/dialogdropdown.png/ screenshot http://img704.imageshack.us/img704/1893/dialogdropdown.png
Làm thế nào để sửa chữa hành vi này để danh sách cho thấy chiều dài đầy đủ ngay từ đầu, khi người dùng bắt đầu gõ một cái gì đó?
Code-khôn ngoan không có gì đặc biệt, tất cả tôi làm là:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getContext(), R.layout.nav_route_autocomplete_row, locStrings);
AutoCompleteTextView txtStartPos = (AutoCompleteTextView) findViewById(R.id.txtStartPos);
txtStartPos.setAdapter(adapter);
...
Một workaround ý tưởng là bằng cách nào đó cử một sự kiện chuyển động để mô phỏng một cảm ứng (nhưng sau đó không chọn mặc dù) một trong các mục danh sách . Bất kỳ ý tưởng cụ thể nào về mã cho giải pháp, bất kỳ ai?
Tôi đã cố gắng thiết lập thuộc tính đó cho LinearLayout bên ngoài của bố cục hộp thoại của tôi và cũng cho tất cả những người khác trong đó AutoCompleteTextView là một (con) con của. Nhưng nó không giúp được gì. Vì nó là một hộp thoại, nó sẽ giống như window.setClipChildren (false), nhưng tiếc là một phương thức như vậy không tồn tại trong cửa sổ. Hoặc một số cờ như window.setFlags (WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); nhưng tất cả đều không giúp ích gì. –