0

我正在尝试使用仅包含图像/图标(可绘制)的页面标题来实现 ViewPager。

我尝试使用 JW ViewPagerIndicator,但它不只支持图标。我得到的最好的结果是我设法显示了图标,但没有居中(它显示在左侧 - 就像页面标题中有一些文本,但不可见)。我也尝试修改库,但没有设法实现满足我对此需求的东西(我也不想修改库)。

你们能推荐一些其他库或一些好的教程来实现自定义 ViewPager 吗?

PS:我正在尝试做类似 Twitter android 应用程序的事情。

谢谢你。

乐:

经过更多的搜索和文档后,我发现它可以通过反射来实现......我也发现这种方法现在有效:

private void forceStackedTabs() {
    ActionBar ab = getSupportActionBar();
    if ( ab instanceof ActionBarImpl ) {
        // Pre-ICS
        disableEmbeddedTabs( ab );
    } else if ( ab instanceof ActionBarWrapper ) {
        // ICS
        try {
            Field abField = ab.getClass().getDeclaredField( "mActionBar" );
            abField.setAccessible( true );
            disableEmbeddedTabs( abField.get( ab ) );
        } catch (NoSuchFieldException e) {
            Log.e( TAG, "Error disabling actionbar embedded", e );
        } catch (IllegalArgumentException e) {
            Log.e( TAG, "Error disabling actionbar embedded", e );
        } catch (IllegalAccessException e) {
            Log.e( TAG, "Error disabling actionbar embedded", e );
        }
    }
}
private void disableEmbeddedTabs(Object ab) {
    try {
        Method setHasEmbeddedTabsMethod = ab.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class);
        setHasEmbeddedTabsMethod.setAccessible(true);
        setHasEmbeddedTabsMethod.invoke(ab, false);
    } catch (Exception e) {
        Log.e( TAG, "Error disabling actionbar embedded", e );
    }
}

这是我找到它的链接:forceStackedTabs()

但我更喜欢另一种方法,因为通过反射,这段代码可以随时中断!

4

1 回答 1

1

如果您想要类似 Twitter 的应用程序,请使用 ActiconBar Sherlock 库,链接

于 2013-10-14T09:24:08.210 回答