【问题标题】:Android: in TabWidget, is there a way to get the view containing the tabs?Android:在 TabWidget 中,有没有办法获取包含选项卡的视图?
【发布时间】:2011-04-26 15:37:12
【问题描述】:

大家好 我正在尝试编写一个选项卡活动,其中每个选项卡都有一个用于指标的自定义视图。 视图像这样膨胀:

LayoutInflater inflater = (LayoutInflater)
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        specIndicatorView = inflater.inflate(R.layout.tab_indicator, null);

        indicatorIv = (ImageView)specIndicatorView.findViewById(R.id.indicatorImage);
        indicatorTv = (TextView)specIndicatorView.findViewById(R.id.indicatorText);

        indicatorIv.setImageDrawable(context.getResources().getDrawable(indicatorImageRes));
        indicatorTv.setText(indicatorTextRes);

问题是子视图中定义的布局参数不影响它,那是因为我不知道如何将父视图传递给inflate方法。

我要做的只是有一个图像和一些文本,其中图像与顶部对齐,文本与指示器视图的底部对齐,但我还需要一些小调整,需要我使用它指标策略。 看了整个tab机制的源码,不知道怎么获取父视图,你知道怎么做吗? 你有更好的方法来实现我的需要吗?

谢谢

【问题讨论】:

    标签: android tabs android-tabhost tabwidget


    【解决方案1】:

    您说您查看了标签的所有代码;在您的活动中调用 getTabWidget() 有什么问题?

    【讨论】:

    • 嗨,Yoni,正如我之前所说,我需要一个“视图”对象,而选项卡小部件不是这样。可以调用 getChildTabViewAt() 方法,但有两个问题:a)我想创建包含视图的子选项卡,但获取子选项卡视图只会为构建的选项卡返回它,并且 b)这仅返回我认为的内容视图,而不是更大的容器视图
    • 我想我错过了这里的重点。如果您想使用 tabSpec 的 setIndicator 方法为选项卡使用自定义布局,只需使用 getTabWidget() 而不是 null 作为布局充气器的第二个参数。请参阅 Google IO 2010 调度应用程序:code.google.com/p/iosched/source/browse/trunk/src/com/google/…
    • 对不起,你是对的,我使用的是 getTabWidget().findViewById(android.R.id.tabs) 但 getTabWidget 也可以,我错过了标签小部件是视图组也...谢谢!
    【解决方案2】:

    您是否尝试从其中一个选项卡活动中访问TabHost?如果是这样,您应该可以从子活动中通过getParent() 访问TabHost

    【讨论】:

    • 我实际上并不是要获取父活动,而是要获取“视图”对象,此外,我在 TabActivity 内部尝试执行此操作并将其发送到充气机
    • 您要访问哪个View 对象? TabHost?
    • tabindicator 视图的容器是什么视图
    • 看起来@Yoni Samlan 的答案可能就是您当时正在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2020-01-24
    相关资源
    最近更新 更多