Uygulamamın bir kısmı için kullanıcıya bir ad listesi sunulur ve uygun gördükleri şekilde gruplandırmaları istenir.
(Not, ListView kodu Android Views öğreticisinden kelimesi kelimesine kopyalandı. Henüz ihtiyaçlarıma göre özelleştirmedim, sadece bu işi nasıl yapacağımı anlamaya çalışıyorum.)
Temel düzen, RelativeLayout içeren bir ScrollView (aşağıdaki kodda "groupsScrollView" olarak adlandırılır) içeren bir LinearLayout'tur. Bazı düğmeler ve metin ve sonra adları listesini görüntüleyen bunun altında benim ListView var. Tüm bunlar görünür ekran alanından daha uzundur, bu nedenle kullanıcının hepsini görmek için dikey olarak kaydırılmasına izin verilir.
Sayfa yüklendiğinde her zaman sayfanın ortasındaki ListView sayfamın üstüne önceden kaydırılmış olduğu sürece, bunların hepsi güzel çalışır. Oluşturduğum metin ve düğmeler kullanıcıya ne yapacağını söyleyemez.
Ekranı alıp yukarı kaydırabilirim, bu iyi çalışır, ancak ekranın zaten yukarı kaydırılmış olarak yüklenmesini istiyorum. Kullanıcının yeni yüklenen bir sayfanın üst kısmını görmek için YUKARI kaydırması gerekmez. Ancak programlı olarak ekranın üst kısmına kaydırmaya çalıştığım her şey başarısız oldu.
İşte benim onCreate yöntemi:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.groups);
mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView);
//get the Bundle out of the Intent...
Bundle extras = getIntent().getExtras();
mNames = extras.getStringArray("mNames");
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mNames));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
//This is the line I'm having issues with
mainScrollView.pageScroll(View.FOCUS_UP);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
"MainScrollView.pageScroll (View.FOCUS_UP) satırı; sorun. Hataya neden olmaz, ancak hiçbir şey yapmıyor gibi görünüyor. ScrollTo (0,0), scrollDirection (View.FOCUS_UP) ) ve aklıma gelen her şeyi.
Bir hata alamadım çünkü bu kaydırma komutlarının gerçekten çalıştığını, ancak bunları içeren ScrollView veya RelativeLayout'un yerine, ListView'in en üstüne kaydırdıklarını varsaymak zorundayım. Bu, Google'ın kendi "scrollTo (int x, int y)) yöntemi ile" Bu sürüm aynı zamanda kaydırmayı çocuğumuzun sınırlarına kenetliyor "derler.
Daha uzun bir soru daha da uzun yapmak için, bir ScrollView içinde bulunan ekrana bir grup görünümü nasıl yükleyebilirim ve daha sonra kullanıcının etkileşime girebilmesi için programın tamamını sayfanın üstüne kaydırırım?
Teşekkürler!