2016-03-31 23 views
2

Aşağıdaki sorunu yaşıyorum: Ekranda 4 Düğme var, düğmeyi bırakıp sürüklenip orijinal konumlarına geri dönün.Ekranda OnCreate() içindeki Nesnelerin Konumunu Getir()

Bunu yapmak için, düğmenin (belirli aygıtta) özel konumunu getX() ve getY() işlevini kullanarak ve sonuçları bir diziye yazarak okumak istiyorum.

buttons[0][0] = button.getX(); 
buttons[0][1] = button.getY(); 

Ben onCreate veya onStart bu işlevleri (pozisyon daima (0,0) görünümü henüz herhangi olmadan orijinal pozisyonunu dışarı okuma hakkında düşünüyorum örneği değil neden olduğunu kullanamaz gibi ekstra kodlama.

çok teşekkürler yılında

cevap

1

senin onCreate topluluk olsalar onResume yapabilir daha mantıklı-get ki bu da, faaliyetlerinin tüm düğmelerin bir atası bir görünümüne başvuru (veya yalnızca kök en kolay şekilde yapın ve bunu yapın:

rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
    rootView.getViewTreeObserver().removeOnGlobalLayoutListener(this); 

    // Read values here. 
    buttons[0][0] = button.getX(); 
    buttons[0][1] = button.getY(); 
    } 
}); 
+0

Çalışır set olma avantajı! :) – DWOME

1

"Ek kodlama" ile ne kastettiğinizden emin değilsiniz, ancak bir OnTouchListener (veya bu durumda, kullanmakta olduğunuzı değiştirdiğinizde) düğmeyi dokunur bırakmaz, konumu yakalamak için kullanabilirsiniz; Herhangi bir yere sürüklemeden önce (Ben ACTION_DOWN olacağını düşünüyorum).

Bu sahiptir size sadece ihtiyacınız olduğunda, her düzen geçiş için onu çağıran aslında düğmeleri sürüklemek olmadığında o kaptan değil, bir cazibe gibi vb

+0

Bu aslında "ekstra kodlama" ile kastettiğim ama geri bildiriminiz için çok teşekkürler! 15 tanıma ulaşır ulaşmaz size oy vereceğim. :) – DWOME