Android重播问题

时间:2012-11-26 07:12:15

标签: android layout

请帮助我

我的xml-layout是这样的

<LinearLayout width=fill height=wrap orient=horizontal>
  <LinearLayout width=0 height=wrap weight=1>...</>
  <LinearLayout width=0 height=wrap weight=1>...</>
  <LinearLayout width=0 height=wrap weight=1>...</>
  <LinearLayout width=wrap height=wrap weight=0>...</>
</LinearLayout>

这个膨胀的main.xml正是我所需要的 - 四个小组在屏幕上均匀分布。

但是,当我使用[例如]第二个子布局可见性GONE启动活动并在运行时使其成为VISIBLE时,整个根/父布局看起来非常糟糕。子视图[来自子布局]相互混淆,看起来他们的位置没有重新计算,以考虑新的linearlayout变得可见。

requestLayout()forceLayout()没有帮助。

如何让根布局做与活动刚刚开始时相同的事情?

2 个答案:

答案 0 :(得分:0)

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="4">

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">........</LinearLayout>

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">........</LinearLayout>

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">........</LinearLayout>

        <LinearLayout 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">........</LinearLayout>

</LinearLayout>

答案 1 :(得分:0)

毕竟我觉得它有效。现在所有更新都正确,虽然我认为这不是真正的解决方案。我刚刚移动了代码,重新计算了onWindowFocusChanged回调的布局可见性,并手动设置代码中的android:weightSum。 相信onSizeChanged回调也可以提供帮助。