【问题标题】:TabHost on Facebook for Android适用于 Android 的 Facebook 上的 TabHost
【发布时间】:2010-10-06 23:24:44
【问题描述】:

任何人都知道 facebook 是如何做到这一点的:





据我所知,我们无法更改 tabhost 的高度。我猜他们将“Frank Cho”视图放在 tabhost 上,让它看起来更短,但我可能错了。有谁知道怎么回事?

【问题讨论】:

    标签: android height customization android-tabhost


    【解决方案1】:

    您实际上可以拥有自定义外观的标签小部件。您需要将选项卡指示器设置为一些自定义布局(使用您的可绘制对象),您应该一切顺利。

    这是一个半示例:

    final TabHost host = getTabHost();
    
    final TextView indicator = (TextView) getLayoutInflater().inflate(
                                R.layout.tab_indicator,
                                getTabWidget(), false);
    indicator.setText("Tab title");
    
    host.addTab(host.newTabSpec("The tab tag")
                .setIndicator(indicator)
                .setContent([put your content here]));
    }
    

    tab_indicator 布局如下所示:

    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tab_label"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:textSize="14sp"
        android:textStyle="bold"
        android:minHeight="38dp"
        android:background="@drawable/minitab" />
    

    minitab drawable 是一个可绘制项目选择器(因此您需要有一个用于选中、默认、按下和未选中的图像)。 facebook 应用程序为默认选项卡使用了一些白色可绘制图像,为未选择的选项卡使用了蓝色渐变绘制。

    查看 Google IO Schedule 应用以获取完整的工作示例:http://code.google.com/p/iosched/(特别是 TrackDetailActivity.java)

    【讨论】:

      【解决方案2】:

      其他人有我认为正确的答案,但由于某种原因将其删除...

      有问题的高度不是TabHost的高度,而是TabWidget的高度。

      尝试使用setIndicator() 的版本,它采用View 而不仅仅是StringString 加上可绘制资源。虽然我还没有玩过这个,但我的理解是它很好地解决了这个问题。

      不过,请注意,不要以难以点击的标签结束。

      【讨论】:

      • 是的,就是我——我按了空格键,帖子发表得太早了。
      • 谢谢....我现在的问题是选项卡太大了,占用了太多屏幕空间来完成我想要它们做的事情。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      相关资源
      最近更新 更多