关于launcher改变tabs_container和tabhost位置引发的血案

本文通过调整LinearLayout中子控件的权重与高度属性,解决了快速滑动时Launcher卡顿及崩溃的问题。修改前后的界面显示效果一致,但修改后界面更流畅且稳定。

滑动过快,launcher会卡住回到主界面

09-22 09:07:48.515: D/dalvikvm(3845): create interp thread : stack size=32KB
09-22 09:07:48.515: D/dalvikvm(3845): create new thread
09-22 09:07:48.515: D/dalvikvm(3845): new thread created
09-22 09:07:48.515: D/dalvikvm(3845): update thread list
09-22 09:07:48.515: D/dalvikvm(3845): threadid=12: interp stack at 0x5d470000
09-22 09:07:48.515: D/dalvikvm(3845): threadid=12: created from interp
09-22 09:07:48.515: D/dalvikvm(3845): start new thread
09-22 09:07:48.515: D/dalvikvm(3845): threadid=12: notify debugger
09-22 09:07:48.515: D/dalvikvm(3845): threadid=12 (AsyncTask #15): calling run()
09-22 09:07:48.516: D/dalvikvm(3845): create interp thread : stack size=32KB

追了好久,原来是代码问题。

原来的代码是

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_weight="10"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/tabs_container"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/apps_customize_tab_bar_height"
            android:layout_marginTop="@dimen/apps_customize_tab_bar_margin_top"
            android:layout_gravity="center_horizontal">

改成了

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_weight="7"
            android:layout_width="match_parent"
            android:layout_height="0dp">

        <FrameLayout
            android:id="@+id/tabs_container"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_marginTop="@dimen/apps_customize_tab_bar_margin_top"
            android:layout_gravity="center_horizontal">

注意,父布局是一个垂直方向的linearlayout

值得玩味的是,前后界面显示效果是一样的,但修改了之后界面很流畅,也不会出现崩掉的情况了。

因此,按比例显示LinearLayout内各个子控件,需设置android:layout_height="0dp"或android:layout_width="0dp",以防内存占用问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值