4

LayoutParams でフラグメントを動的に追加することは可能ですか? RelativeLayout に入れたいフラグメントが 2 つあります。1 つは左にロックする必要があります。もう一方は右側にロックする必要があります。

4

4 に答える 4

2

それらをそれぞれレイアウト ( など) でラップし、そのサイズと位置を設定できますこの回答は同様の問題に関するもので、をカスタム レイアウト パラメータとともに使用して を含める方法を示しています。LinearLayoutFrameLayoutFragment

fragmentXML でオブジェクトを使用する場合、android:layout_*属性を使用してその位置を制御できることに注意してください。そのようです:

<LinearLayout
    android:orientation="horizontal"
    ... >

    <fragment
        android:layout_height="wrap_content"
        android:layout_width="0px"
        android:layout_weight="1"
        ... />

    <fragment
        android:layout_height="wrap_content"
        android:layout_width="0px"
        android:layout_weight="1"
        ... />

</LinearLayout>

Fragmentただし、レイアウト パラメーターをプログラムでsに適用することはできないと思います。ViewGroup結局のところ、彼らは s ではありません。

于 2012-09-10T19:09:49.387 に答える
0

onCreateViewメソッドで Fragment のLayoutParametersを設定できます。このメソッドの戻り値として最終ビューを返す前に、レイアウト パラメータを設定できます。以下のフラグメントのサンプルとして、LayoutParams を設定することにより、TextView を親に固定された View として返します。

    public static class DummySectionFragment extends Fragment {
    public static final String ARG_SECTION_NUMBER = "placeholder_text";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        TextView textView = new TextView(getActivity());
        textView.setGravity(Gravity.CENTER);
        textView.setText(Integer.toString(getArguments().getInt(
                ARG_SECTION_NUMBER)));
        LayoutParams lp  = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
        textView.setLayoutParams(lp);

        return textView;
    }
}
于 2013-09-24T08:12:15.173 に答える