2013-07-19 70 views
0

的底部是什麼我的代碼在這裏做的是剛剛從粉色區域拖動的TextView拖放到黃色區域拖放,當我把TextView的屏幕

的問題是,當我拖動的TextView在屏幕的底部 TextView的將是無形的

請,如果你沒有得到我的問題問我在評論

我試着搜索了很多,但沒有得到任何指針

這裏是screensh OT和代碼

enter image description here

這是主要的活動課

package com.javapapers.android.drag_drop; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.*; 
import android.view.View.OnDragListener; 
import android.view.View.OnTouchListener; 
import android.view.View.DragShadowBuilder; 
import android.widget.LinearLayout; 
import android.util.Log; 
import com.javapapers.android.drag_drop.R; 


public class MainActivity extends Activity implements OnTouchListener,OnDragListener{ 
    private static final String LOGCAT = null; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     findViewById(R.id.textView1).setOnTouchListener(this); 
     findViewById(R.id.pinkLayout).setOnDragListener(this); 
     findViewById(R.id.yellowLayout).setOnDragListener(this); 
    } 
    public boolean onTouch(View view, MotionEvent motionEvent) { 
      if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
       DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view); 
       view.startDrag(null, shadowBuilder, view, 0); 
       view.setVisibility(View.INVISIBLE); 
       return true; 
      } 
      else { 
       return false; 
      } 

    } 
    public boolean onDrag(View layoutview, DragEvent dragevent) { 
      int action = dragevent.getAction(); 
      switch (action) { 
      case DragEvent.ACTION_DRAG_STARTED: 
       Log.d(LOGCAT, "Drag event started"); 
      break; 
      case DragEvent.ACTION_DRAG_ENTERED: 
       Log.d(LOGCAT, "Drag event entered into "+layoutview.toString()); 
      break; 
      case DragEvent.ACTION_DRAG_EXITED: 
       Log.d(LOGCAT, "Drag event exited from "+layoutview.toString()); 
      break; 
      case DragEvent.ACTION_DROP: 
      Log.d(LOGCAT, "Dropped"); 
      View view = (View) dragevent.getLocalState(); 
      ViewGroup owner = (ViewGroup) view.getParent(); 
      owner.removeView(view); 
      LinearLayout container = (LinearLayout) layoutview; 
      container.addView(view); 
      view.setVisibility(View.VISIBLE); 
      break; 
      case DragEvent.ACTION_DRAG_ENDED: 
        Log.d(LOGCAT, "Drag ended"); 
       break; 
      default: 
      break; 
      } 
      return true; 
    } 
} 

,這是activity_main XML

<RelativeLayout xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/center" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <LinearLayout 
     android:id="@+id/pinkLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="210dp" 
     android:background="#FF8989" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/dragtext" 
     android:textSize="70sp" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/yellowLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="250dp" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@+id/pinkLayout" 
     android:background="#FFCC00" 
     android:orientation="vertical" > 

    </LinearLayout> 

</RelativeLayout> 

謝謝

回答

1

這是因爲沒有觸及丟棄的案例,而是觸發了退出和結束的案例,因此視圖的可見性從未設置爲再次可見