7
orta

olmalıdır seçilen sekmesini ayarlamak için ben Android'e ve projeme yeni duyuyorum yani altı sekme var ama ekranda sadece üç sekme göstermek ve sekmeler geri kalanı için Scrollview kullanın. Burada seçilen sekme öğesi ortada olmalıdır, ilk önce ekrana girdiğimde orta öğenin aktif olduğunu gösteriyorum (yani seçili).Ben <p>şartı</p> Kaç

Sorun değil ama kalan Sekmeler için kaydırdığımda bu orta öğeyi nasıl orta olarak ayarlayabilirim? Çözüm almak için herhangi bir öneride bulunabilir.

+0

Eğer kaydırma algılar bir dinleyici kullanarak içine ve el geri arama yönteminde selectedTab set daha aradınız? Öneriniz için – hovanessyan

+0

Teşekkür ama (i xml Horizaontalscrollview ilan) TestHorizontalScrollView sView = (TestHorizontalScrollView) findViewById (R.id.horizontalScrollView) Aşağıdaki kaydırma dinleyicileri işe yaramadı; public class TestHorizontalScrollView HorizontalScrollView genişletir { \t kamu TestHorizontalScrollView (Bağlam bağlam) { \t süper (içerik); \t} \t @Override onScrollChanged \t korunan boşluk (int l, int t, int buharlaştınîdı, int oldt) { \t \t \t super.onScrollChanged (oldt L, T, buharlaştınîdı,); \t} – Gopi

+0

http://stackoverflow.com/q/8181828/1007273 Burayı inceleyin, sanırım yararlı fikirleri bulacaksınız. – hovanessyan

cevap

0

Tabhost'un böyle bir davranışı olduğunu sanmıyorum. Bildiğim gibi, tabhost sekme denetleyicisi olmadan çalışabilir. Durumunuz için, bir sekme, sekme denetleyicisini değiştirir, bildiğiniz gibi, galeride seçilen öğe her zaman ortada kalır. Ardından galerinin olay dinleyicisinde, tabhost'ta hangi sekmenin görüneceğini kontrol etmek için bir kod yazın.

7

Kontrol this dışarı :)

public void centerTabItem(int position) { 
    tabHost.setCurrentTab(position); 
    final TabWidget tabWidget = tabHost.getTabWidget(); 
    final int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); 
    final int leftX = tabWidget.getChildAt(position).getLeft(); 
    int newX = 0; 

    newX = leftX + (tabWidget.getChildAt(position).getWidth()/2) - (screenWidth/2); 
    if (newX < 0) { 
     newX = 0; 
    } 
    horizontalScrollView.scrollTo(newX, 0); 
} 
+0

bu çok iyi çalışıyor. ama tabhost kurulum ve başlatıldığında ilk kez bunu nasıl elde edebilirim. sekme ana bilgisayarını geçerli dizini 5 – Sunny

+0

olarak inisiye etmek istediğimi söyleyelim Kurulumdan sonra, centerTabItem (5) doğrudan çağırabilirsiniz. –

İlgili konular