Bilgisayarımdaki emülatörde scrollBy yöntemini çağırdığımda ancak Android telefonumda yapmayacağımda, ScrollView ile doğru bir kaydırma yapacağım bir Android programım var. İşte Android ScrollView sınıfında smoothScrollBy yöntemini kullanma
kodudur: Ayrıcapublic class RecordGameActivity3 extends Activity {
ScrollView myView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recordgame3);
myView = (ScrollView)findViewById(R.id.scrollView1);
}
public void addPlayer(View v)
{
//Removed non-related code
myView.smoothScrollBy(0, 50);
}
}
, çalışmıyor düzenli scrollBy yöntemi veya scrollTo yöntemi (bu da bilgisayarda çalışmıyor çünkü ben sadece doğru olduğunu kullanmıyor olabilir rağmen). Neyin yanlış olabileceğine dair bir fikri var mı?
DÜZENLEME:
Darrell'ın cevap olarak Sorunum beni ben olmak mümkün olacak kadar büyük kaydırma alanı olur düzeninde değişiklik yaparak bir işlev içinde benim smoothScrollBy yöntemini çağırıyordu olduğunu gösterdi kaydırılan. Görünüşe göre, bu fonksiyonu çağırırken, değişiklikler gerçekte uygulanmadı ve bu yüzden kaydırılamadı.
public class RecordGameActivity3 extends Activity {
ScrollView myView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.recordgame3);
myView = (ScrollView)findViewById(R.id.scrollView1);
// New code that listens for a change in the scrollView and then calls the scrollBy method.
ViewTreeObserver vto = myView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
myView.smoothScrollBy(0, 100);
}});
}
public void addPlayer(View v)
{
//Code that is called on an onClick listener that adds things to the ScrollView making it scrollable.
}
}
Tamam - onCreate yönteminden bunu yapmıyorum, ancak kaydırma yapmasını sağlayan bileşenleri eklerken kullandığım bir yöntemde yapıyorum. ViewTreeObserver'ı nasıl kullanabilirim? –
Boşver - Nasıl olduğunu anladım. Yardımın için çok teşekkürler. –