第一次点击expandablelistview中的edittext,整个布局滚动,用户可以看到edittext。然后点击软键盘完成折叠软键盘并再次点击此编辑文本,软键盘显示,但整个布局不滚动,用户无法看到编辑文本。我也在listview中找到了这个。我搜索了很长时间,有人说这是一个恶意程序错误? 有没有更换?adjustpan无法在expandablelistview中点击第二次同一编辑文字时
0
A
回答
0
花了很多天,我找到了解决方案。这是一个黑客。
- 把你edittext包裹在linearlayout中。
通过可见的布局更改来检测软键盘显示。
public final void setKeyboardListener(final OnKeyboardVisibilityListener listener) { final View activityRootView = getWindow().getDecorView() .findViewById(android.R.id.content); activityRootView.getViewTreeObserver() .addOnGlobalLayoutListener(new OnGlobalLayoutListener() { private final Rect r = new Rect(); private boolean wasOpened; @Override public void onGlobalLayout() { activityRootView.getWindowVisibleDisplayFrame(r); int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top); boolean isOpen = heightDiff > 100; if (isOpen == wasOpened) { return; } wasOpened = isOpen; listener.onVisibilityChanged(isOpen); } }); } public interface OnKeyboardVisibilityListener { void onVisibilityChanged(boolean visible); }
当softkeyboard节目,拿起ListView项或expandablelistview子项目一个TextView。然后为任何事物设置文本,整个视图像正常一样滚动!这样的代码:
activity.setKeyboardListener(new OnKeyboardVisibilityListener() { @Override public void onVisibilityChanged(boolean visible) { if (visible) { Message message = new Message(); message.what = 999; handler.sendMessage(message); } } }); private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 999) { if (mDataMap.size() > 0) { for (int i = 0; i < expandablelistview.getChildCount(); i++) { View v = expandablelistview.getChildAt(i); TextView tvCannotSee = (TextView) v.findViewById(R.id.tv_cannot_see); if (tvCannotSee != null) { //this is the key hack to make adjuspan work! and scroll the whole view up as normal tvCannotSee.setText("this is an android bug"); return; } } } return; } super.handleMessage(msg); } };
这个TextView的显示隐身可为用户正确purpose.if这是一个expandablelistview和childitem中的EditText,TextView的更新必须在childitem。
0
我也遇到了同样的问题,但在google搜索了一段时间之后,我最终发现问题如下。
1)添加机器人:windowSoftInputMode = “adjustPan” 标签内的活动清单文件
<activity
android:name=".MainActivity"
android:configChanges="locale|keyboardHidden|orientation|screenSize|layoutDirection|screenLayout"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize|adjustPan"></activity>
2)添加机器人:descendantFocusability = “beforeDescendants” 属性的列表视图可扩展如下。
<ExpandableListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/textDate"
android:layout_below="@+id/relativeLayout2"
android:descendantFocusability="beforeDescendants"
android:layout_margin="@dimen/margin_meium"
android:groupIndicator="@android:color/transparent" />
相关问题
- 1. 无法发布到数据库第一次点击(第二次点击工作)
- 2. Android - 编辑文本粘贴选项无法在第一次点击
- 3. 在点击编辑文本字段第二次显示的默认键盘
- 4. jQuery文本无法在第一次点击时切换
- 5. dgrid(onDemandGrid)在第一次点击按钮时加载,但第二次点击时出错按钮被点击
- 6. 在网格中编辑行不起作用第一次点击
- 7. 自定义DataGridViewCell,第二次点击编辑
- 8. 事件上一点击,第二次点击,而第三次点击
- 9. 在第一次点击时跳转动画,在第二次时跳转正常
- 10. Popovers没有出现在第一次点击,但出现在第二次点击
- 11. 如何使XamDataGrid仅在第二次点击时编辑单元格
- 12. 同位素过滤器动画无法在第一次点击
- 13. 第二次点击; jQuery
- 14. 第二次点击jQuery
- 15. jquery:第二次点击
- 16. JavaScript第二次点击
- 17. 隐藏第二次点击
- 18. 在AngularJS $ scope.data第一次更新点击按钮其workind第二次点击
- 19. 第二次点击时显示容器
- 20. Fancybox视频在第二次点击后无法播放(错误?)
- 21. ng-click无法在表格内部进行第二次点击
- 22. animate在第一次点击时无法正常工作
- 23. 欧芹验证在第一次点击时返回false,在第二次点击按钮时返回true
- 24. GXT按钮在第一次点击时显示菜单,在第二次点击时不会隐藏菜单
- 25. OnClientClick不会在第一次回发时触发,但会在第二次点击
- 26. 编辑文字后点击
- 27. a4j:commandLink仅在第二次点击时调用动作方法
- 28. 在第一次点击时检测onBlur上的select元素的单击。 (默认为第二次点击)
- 29. jquery datepicker没有弹出第一次点击,但弹出第二次点击
- 30. JavaFX Combobox不会更改为点击第一次和第二次点击的值
没有这个不行,点击这个edittext第二次,softkeyboard显示,但是整个布局没有滚动,而且用户看不到edittext。你做得好吗? – byedo