0

お願い助けて

私の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ものはまさに私が必要としているものです - 画面上に均等に分散された4つのグループ。

しかし、[たとえば] 2 番目のサブレイアウトの可視性を使用してアクティビティを開始し、実行時にGONEそれを作成するとVISIBLE、ルート/親レイアウト全体が非常に悪く見えます。[サブレイアウトからの] サブビューが互いに混乱していて、新しく表示されるようになったことを考慮して、それらの位置が再計算されていないようにlinearlayout見えます。

requestLayout()そしてforceLayout()助けにはなりませんでした。

アクティビティが開始されたときと同じことをルート レイアウトに実行させるにはどうすればよいですか?

4

2 に答える 2

0

結局のところ、私はそれが動作します。これは実際の解決策ではないと思いますが、すべてが正しく更新されるようになりました。レイアウトの可視性を再計算するコードをonWindowFocusChangedコールバックに移動android:weightSumし、手動でコードに設定しました。onSizeChangedコールバックも役立つと信じています。

于 2012-11-26T13:49:27.773 に答える
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>
于 2012-11-26T07:56:59.347 に答える