列表行有2个编辑文本,一个用于名称,另一个用于值,问题是当光标设置为值字段时,它立即跳转到第一个字段,没有机会在那里键入任何内容。这是xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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">
<EditText
android:id="@+id/nameID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="176dp"
android:imeOptions="actionNext"/>
<EditText
android:id="@+id/valueID"
android:layout_width="74dp"
android:layout_height="44dp"
android:layout_marginStart="8dp"
android:ems="10"
android:hint="Value"
android:inputType="number|numberDecimal"
app:layout_constraintStart_toEndOf="@+id/nameID"
tools:layout_editor_absoluteY="176dp" />
<ImageButton
android:id="@+id/xButtonID"
android:layout_width="42dp"
android:layout_height="40dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/valueID"
app:srcCompat="@android:drawable/ic_delete"
tools:layout_editor_absoluteY="176dp"
/>
</android.support.constraint.ConstraintLayout>
这是getView的Java代码,实际上没什么有趣的,没有监听器,没有动作..:
@NonNull
@Override
public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
SheetItem sheetItem = new SheetItem();
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(listItemLayout,parent, false);
holder = new ViewHolder();
holder.name = (EditText) convertView.findViewById(R.id.nameID);
holder.value = (EditText) convertView.findViewById(R.id.valueID);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.item = getItem(position);
ImageButton deleteButton = convertView.findViewById(R.id.xButtonID);
deleteButton.setTag(position);
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = (int) v.getTag();
itemList.remove(pos);
notifyDataSetChanged();
notifyDataSetInvalidated();
}
});
return convertView;
}
答案 0 :(得分:1)
嘿,只需在Manifest文件中的Activity元素中添加一个标记
工作正常
android:windowSoftInputMode="adjustPan"
感谢分享项目。
答案 1 :(得分:0)
我遇到了类似的问题,长按特定的编辑文本并查找选项。它提供了一些像输入类型的东西,然后选择合适的一个。我想应该这样做。