プログラマティックで動的にフラグメントレイアウト全体を構築したいと考えています。だから私はこのコードを作成しました:フラグメント内のネストされた線形レイアウトにビューを追加することはできません。
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.empty_container, container, false);
final FrameLayout rootView = (FrameLayout) view.findViewById(R.id.empty_container);
final LinearLayout linearLayout = new LinearLayout(getActivity());
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setBackgroundColor(Color.BLACK);
rootView.addView(linearLayout);
final Button button = new Button(getActivity());
button.setBackgroundColor(Color.GREEN);
button.setText("button name");
button.setLayoutParams(new LinearLayout.LayoutParams(100, 100));
linearLayout.addView(button);
return view;
}
とxml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/empty_container"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
これが正常に動作していない理由を私は把握傾けます。ボタンはまったく表示されません(ただし、線形レイアウトは表示されます - 画面全体が黒です)。ボタンのレイアウトパラメータの1つをMATCH_PARENT
に設定すると突然表示されますが、100 pxに設定するとWRAP_CONTENT
が表示されません。
オープンのAndroidデバイスモニタ、ツリービューアを使用してDOMをチェックし、アプリケーションを実行します。ビューがDOMに追加されているかどうかを確認することができます。 –
http://developer.android.com/tools/help/hierarchy-viewer.html –
階層ビューアを使用しています。ボタンがツールバーの下に隠されていました。ありがとう@RussellElfenbein – tymbark