グーグル ネストされたフラグメントが XML を使用できないという多くの宣言を目にします。今、私は Android を初めて使用しますが、私のアプリはネストされたフラグメントで XML を使用しています。リスナーとインターフェースはまだ動作していませんが (これが XML を使用できないと人々が言う理由かもしれません)、GUI は動作します。
私の質問: ネストされたフラグメントに XML を使用しないことについて読んだコメントは、どういう意味ですか?
ここでは、入れ子になったフラグメントでは XML を使用できないという記述へのリンクを示します。
以下のコードは、(別のフラグメント内の) 上に水平に配置された 3 つのラジオグループ (それぞれのフラグメント内) を作成し、その下にリストビュー (別のフラグメント内) を配置します。フラグメントにより、さまざまな表示タイプの外観を適切に制御できます。
これが私のコードです:
public class SetupNew extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ngs);
}}
ngs.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<fragment android:id="@+id/frag_options_all"
android:layout_height="250dp"
android:layout_width="fill_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:name="com.EXAMPLE.frag_class_options_all"/>
<fragment android:id="@+id/frag_select_opponent"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:layout_width="fill_parent"
android:name="com.EXAMPLE.frag_class_opponents"/>
</LinearLayout>
frag_class_options_all.java
public class frag_class_options_all extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.options_all, container, false);
return view;
}}
frag_class_opponents.java
public class frag_class_opponents extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
//working contact listview
}
options_all.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment android:id="@+id/frag_options"
android:layout_height="fill_parent"
android:layout_width="80dp"
android:layout_marginRight="15dp"
android:name="com.EXAMPLE.frag_class_options"/>
<fragment android:id="@+id/frag_ship_limit"
android:layout_height="fill_parent"
android:layout_width="75dp"
android:layout_marginRight="15dp"
android:name="com.EXAMPLE.frag_class_limit_options"/>
<fragment android:id="@+id/frag_allowable_ship"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:name="com.EXAMPLE.frag_class_allow"/>
</LinearLayout>
frag_class_options、frag_class_limit_options、およびfrag_class_allowはすべて次のようになります。
public class frag_class_options extends Fragment{
RadioGroup radioGroup;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.options_m, container, false);
radioGroup = (RadioGroup) view.findViewById(R.id.rg_limit);
return view;
}
}