Sto tentando di personalizzare il layout del frammento restituendo la mia gerarchia di viste da onCreateView(LayoutInflater, ViewGroup, Bundle)
. Questo gonfia la mia vista personalizzata, ma sembra impilare le visualizzazioni anziché gonfiare all'interno, vedo tutto in una volta. Qualsiasi aiuto è apprezzato.Android + ListFragment con una gerarchia di viste personalizzata
MyActivity.java:
public class MyActivity extends FragmentActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
ArrayListFragment list = new ArrayListFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit();
}
}
public static class ArrayListFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.main, container);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String List[] = {"Larry", "Moe", "Curly"};
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, List));
}
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="THIS IS A BUTTON" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"
android:drawSelectorOnTop="false" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="No data" />
</LinearLayout>
Inoltre da notare, sto usando Android-supporto-v4. Dalla documentazione Android, afferma chiaramente: "ListFragment ha un layout di default che si compone di un unico elenco vista Tuttavia, se si desidera, è possibile personalizzare il layout frammento da restituendo la propria gerarchia di vista da onCreateView (. LayoutInflater, ViewGroup, Bundle). Per fare ciò, la gerarchia della vista deve contenere un oggetto ListView con l'id "@android: id/list" (o l'elenco se è nel codice ). " – worked