2013-07-14 108 views

回答

1

爲此目的沒有公共API調用。


警告:以下方法可能會停止工作未來

有一些思考的技巧,但:

public boolean hasEmbeddedTabs(ActionBar actionBar){ 
    Boolean embedded = false; 
    try { 
     Class c = Class.forName("com.android.internal.app.ActionBarImpl"); 
     Field f = c.getDeclaredField("mHasEmbeddedTabs"); 
     f.setAccessible(true); 
     embedded = f.getBoolean(actionBar); 
     f.setAccessible(false); 
    }catch (Exception e) { 
     Log.e("MyApp","Not a fair play",e); 
    } 
    return embedded; 
} 

而且對於瞭解摺疊狀態:

public boolean areTabsCollapsed(ActionBar actionBar){ 
    Boolean collapsed = false; 
    try { 

     Class c = Class.forName("com.android.internal.app.ActionBarImpl"); 

     Class c2 = Class.forName("com.android.internal.widget.ScrollingTabContainerView"); 
     Method m = c2.getDeclaredMethod("isCollapsed"); 

     Field f2 = c.getDeclaredField("mTabScrollView"); 
     f2.setAccessible(true); 
     Object scrollView = f2.get(actionBar); 
     if(scrollView != null){ 
      collapsed = (Boolean) m.invoke(scrollView); 
     } 
     f2.setAccessible(false); 


    }catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return collapsed; 
} 
+0

謝謝。那麼下拉列表狀態呢? –

+0

@afairplayer查看更新的答案。 –