当我将layout_with为wrap_content的TextView添加到linearlayout时,TextView将不会显示,因为测量的宽度为0.但我给文本一个固定的,我正确显示。
这是代码将在屏幕上显示一个红色块
private void setupDialerTab() {
Intent intent = new Intent("com.android.phone.action.TOUCH_DIALER");
intent.setClass(this, TwelveKeyDialer.class);
StickyTabs.setTab(intent, TAB_INDEX_DIALER);
View view = new View(this);
view.setBackgroundColor(Color.RED);
view.setLayoutParams(new LayoutParams(80, 80));
mTabHost.addTab(mTabHost.newTabSpec("dialer")
.setIndicator(view)
.setContent(intent));
/* mTabHost.addTab(mTabHost.newTabSpec("dialer")
.setIndicator(getString(R.string.dialerIconLabel),
getResources().getDrawable(R.drawable.ic_tab_dialer))
.setContent(intent));
*/ }
这是没有显示的代码。
private void setupContactsTab() {
Intent intent = new Intent(UI.LIST_DEFAULT);
intent.setClass(this, ContactsListActivity.class);
StickyTabs.setTab(intent, TAB_INDEX_CONTACTS);
TextView tv = new TextView(this);
tv.setText("hb2");
mTabHost.addTab(mTabHost.newTabSpec("contacts")
.setIndicator(tv)
.setContent(intent));
/* mTabHost.addTab(mTabHost.newTabSpec("contacts")
.setIndicator(getText(R.string.contactsIconLabel),
getResources().getDrawable(R.drawable.ic_tab_contacts))
.setContent(intent));
*/ }
我自己找到了解决方案。
我原以为textView的默认布局是wrap_content。但事实上,当我使用层次结构视图进行调试时,结果是matchparent和0.因此,如果添加tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
,一切都很顺利。