У меня есть два поля EditText в макете Listview. Новый элемент будет добавлен как первая строка в Listview при нажатии кнопки. И я могу ввести текст в оба поля.Клавиатура скрывает EditText в Android
Вот мой код:
<ListView
android:id="@+id/items_listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animationCache="false"
android:background="@color/white"
android:descendantFocusability="afterDescendants"
android:fadingEdge="none"
android:fadingEdgeLength="0dp"
android:focusable="true"
android:divider="@android:color/transparent"
android:overScrollMode="never"
android:scrollingCache="false"
android:smoothScrollbar="true" />
GetView() адаптера:
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.items_listview_item, null);
viewHolder.quantity = (EditText) convertView.findViewById(R.id.quantity_editText);
viewHolder.description = (EditText) convertView.findViewById(R.id.description_editText);
viewHolder.description.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.position = position;
viewHolder.description.setText(itemsArrayList.get(position).getDescription());
viewHolder.quantity.setText(itemsArrayList.get(position).getQuantity());
viewHolder.quantity.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
itemsArrayList.get(viewHolder.position).setQuantity(arg0.toString());
}
});
viewHolder.description.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
itemsArrayList.get(viewHolder.position).setDescription(arg0.toString());
}
});
return convertView;
}
private static class ViewHolder {
EditText description;
EditText quantity;
int position;
}
И я использую adjustPan для моей деятельности в манифесте.
Это мой вопрос: это нормально работает на всех устройствах, которые я тестировал, но на Samsung Galaxy-Tab2 (10-дюймовый планшет). Когда я добавляю новый элемент и нажимаю 2nd EditText (т.е. поле описания), клавиатура отображается чуть ниже поля описания, что отлично. Теперь, если я нажимаю любую клавишу, клавиатура закрывает поле описания. Я не вижу, что именно вводится в поле. 2-й EditText полностью скрыт клавиатурой. И это не происходит с 1-м полем EditText. Где я ошибаюсь? Почему это не работает, как ожидалось, на галактике-Tab2? Пожалуйста, помогите мне. Заранее спасибо.
Нет, это не решало. Prblm все еще существует на Tab2 – Santhosh