android - 移动编辑文本

标签 android layout android-layout android-edittext

我有一个 EditText,它被放置在 Framelayout 中。我试图让 EditText 在被选中时可以在屏幕上移动。

因此,每当用户选择允许移动项目的模式时,我都会将编辑文本设置为启用(false),这是通过消除编辑文本获得焦点并显示闪烁光标或软键盘的可能性来实现的.但与此同时,当我尝试移动它时,我无法接收到任何触摸输入。

有什么解决方案可以让我移动编辑文本而不让编辑文本接收焦点吗?

我尝试将 focusablefocusableInTouchMode 设置为 false,但它也不起作用。

最佳答案

我通过两个设置完成了此操作。首先,您需要让包装器结构 (LinearLayout) 处理移动事件。将其挂接到包装器的 Touch 事件:

void FrameTouch (object sender, View.TouchEventArgs e)
{

    if (e.Event.Action == MotionEventActions.Move) {
        int placeX = (int)e.Event.GetX () - v.Width / 2;
        int placeY = (int)e.Event.GetY () - v.Height / 2;
        v.Layout (placeX, placeY, placeX+v.Width, placeY+v.Height);
    }

}

然后您需要覆盖 EditText 的 onTouch 事件以确保它在禁用时不会吞下触摸事件:

public override bool OnTouchEvent (MotionEvent e)
{
    if (!Enabled) 
        return false;

    base.OnTouchEvent (e);
    return true;
}

关于android - 移动编辑文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194617/

相关文章:

android - 应用程序 Logo 一半在 ActionBar 中,一半在 mainActivty 屏幕上

android - viewModelScope 默认为 MainThread 的原因是什么?

CSS - 有没有更好的方法来创建滚动的重复文本,这些文本在框的边缘出现和消失?

android - 我如何使用 "android:layoutDirection"?

android - 多行 EditText 聚焦时收缩

ios - 将按钮限制在 View 中,使它们均匀分布

安卓 : Customize Zendesk Rate My APP UI

android - 通过应用引擎端点 api 提供 blobstore 图像

android - 安卓日历

android - 如何通过单击和更改按钮功能在另一个布局中加载布局?