How to implement drag TextView in LinearLayout on Android
<p>Below is my layout.xml:  </p>

<pre><code>&lt;LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="30dp" &gt;

    &lt;LinearLayout
        android:id="@+id/ll1"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:orientation="vertical" &gt;

        &lt;TextView
            android:id="@+id/tv1"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:background="#000000"
            android:singleLine="true"      
            android:textAppearance="?android:attr/textAppearanceMedium" /&gt;

    &lt;/LinearLayout&gt;

&lt;/LinearLayout&gt;
</code></pre>

<p>I want let the TeextView tv1 can drag in LinearLayout ll1 only horizontal.<br>
And I implement as below:  </p>

<pre><code>ll1 = (LinearLayout)findViewById(R.id.ll1);
tv1 = (TextView)findViewById(R.id.tv1);

Rect rectf = new Rect();
ll1.getGlobalVisibleRect(rectf);
LayoutLeft = rectf.left;

tv1.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        float TouchX = event.getX();
        System.out.println("TouchX " + TouchX);
        switch(event.getAction()) {
        case MotionEvent.ACTION_MOVE:
            if(TouchX &lt; LayoutLeft) {
                ll1.setPadding(0, 0, 0, 0);
            }
            else if(TouchX &gt; (LayoutLeft + 100)) {
                ll1.setPadding(100, 0, 0, 0);
            }
            else {
                ll1.setPadding((int)(TouchX - LayoutLeft), 0, 0, 0);
            }
            break;
        case MotionEvent.ACTION_UP:
            break;
        case MotionEvent.ACTION_DOWN:
            break;
        }
        return true;
    }
});
</code></pre>

<p>But I test drag from left to right, I get the TouchX value as below:  </p>

<pre><code>04-03 14:24:18.061: I/System.out(18468): TouchX 43.554024
04-03 14:24:18.631: I/System.out(18468): TouchX 92.101845
04-03 14:24:19.731: I/System.out(18468): TouchX 49.150528
04-03 14:24:20.371: I/System.out(18468): TouchX 100.82299
04-03 14:24:22.311: I/System.out(18468): TouchX 54.747032
04-03 14:24:22.781: I/System.out(18468): TouchX 74.458405
04-03 14:24:22.801: I/System.out(18468): TouchX 6.1168213
04-03 14:24:22.821: I/System.out(18468): TouchX 80.44317
04-03 14:24:22.851: I/System.out(18468): TouchX 21.571915
04-03 14:24:22.881: I/System.out(18468): TouchX 89.24452
</code></pre>

<p>Why the TouchX Value not in order?<br>
How can I modify it?  </p>
