2011-04-26 63 views
0

大家好 我想写一个选项卡活动,其中每个选项卡都有一个指标的自定义视图。 视图膨胀,像这样:Android:在TabWidget中,有没有办法让包含标签的视图?

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); 

的问题是,在子视图中定义的布局参数不影响它,这是因为我不知道如何在父视图传递到膨胀方法。

所有我想要做的是有一个图像和一些文本,图像对齐到顶部和文本对齐指示器视图的底部,但我也需要一些小的调整,需要我使用这个指标策略。 我看过整个标签机制的来源,无法弄清楚如何获得父视图,你知道如何做到这一点吗? 你有更好的方法来实现我所需要的吗?

感谢

回答

2

你说你看过所有的标签代码;在您的活动中只需拨打getTabWidget()有什么不对?

+0

Hi Yoni,正如我之前所说的,我需要一个“查看”对象,而标签部件不是这样。 可以调用getChildTabViewAt()方法,但是有两个问题:a)我想创建带有视图的子选项卡,但获取子选项卡视图将只返回一个构建选项卡,并且b )这只会返回内容视图,而我认为并不是更大的容器视图 – ekatz 2011-04-26 18:25:51

+0

我想我错过了这里的观点。如果要使用tabSpec的'setIndicator'方法为选项卡使用自定义布局,请使用'getTabWidget()'而不是'null'作为布局填充器的第二个参数。请参阅Google IO 2010 Scheduling应用程序:http://code.google.com/p/iosched/source/browse/trunk/src/com/google/android/apps/iosched/ui/ScheduleActivity.java#147 – 2011-04-26 18:59:20

+0

I'对不起,你是对的,我正在使用getTabWidget()。findViewById(android.R.id.tabs),但getTabWidget的作品,以及我错过了这个事实,该选项卡Widget是一个视图组以及... 谢谢! – ekatz 2011-04-26 20:23:25

0

你试图从标签活动之一中访问TabHost?如果是这样,你应该能够通过getParent()从儿童活动中获得TabHost

+0

我实际上并不希望获得父级活动,而是使用“视图”对象,此外,我在TabActivity中尝试这样做并将其发送给充气器 – ekatz 2011-04-26 15:45:11

+0

您的哪个'View'对象是你试图去? TabHost? – 2011-04-26 15:50:02

+0

无论视图是tabindicator视图的容器 – ekatz 2011-04-26 16:08:36

相关问题