当视图的layout_width为wrap_content时,它将不会显示

时间:2011-10-28 01:52:49

标签: android

当我将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));,一切都很顺利。

0 个答案:

没有答案