FragmentTabHost 自定义


原生的 FragmentTabHost 无法自定义,tabwidget 总是按比例等大出现。不适合开发的灵活应用。

要想自定义tabwidget ,可以修改源码如下。注释掉注释的部分,Demo 见附件


@Override
    public void addView(View child) {
        if (child.getLayoutParams() == null) {
        final LinearLayout.LayoutParams lp =new LayoutParams(100, ViewGroup.LayoutParams.MATCH_PARENT);
//            final LinearLayout.LayoutParams lp = new LayoutParams(
//                    0,
//                    ViewGroup.LayoutParams.MATCH_PARENT, 1.0f);
            lp.setMargins(0, 0, 0, 0);
            child.setLayoutParams(lp);
        }
        
        // Ensure you can navigate to the tab with the keyboard, and you can touch it
        child.setFocusable(true);
        child.setClickable(true);


        super.addView(child);


        // TODO: detect this via geometry with a tabwidget listener rather
        // than potentially interfere with the view's listener
        child.setOnClickListener(new TabClickListener(getTabCount() - 1));
        child.setOnFocusChangeListener(this);
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值