PDA

View Full Version : [android] LayoutInflater


Easlay93
20-07-2015, 18:23
Mi da il seguente errore

android.view.InflateException: <merge /> can be used only with a valid ViewGroup root and attachToRoot=true

at com.easlay.maptimer.CuoreAlly.onCreateView(CuoreAlly.java:18)


Il mio codice

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class CuoreEnemy extends Fragment {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = LayoutInflater.from(getActivity()).inflate(R.layout.activity_cuore2_timer, container, false);

return v;
}
}


L'errore e' riportato alla riga delle View.

Layout

<?xml version="1.0" encoding="utf-8"?>
<merge >
<include layout="@layout/activity_cuore"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">

......
</LinearLayout>
</merge>

Easlay93
27-07-2015, 15:24
up

[Kendall]
28-07-2015, 09:21
Piuttosto che ottenere l'inflater da LayoutInflater.from hai provato ad usare direttamente l'inflater che ti viene passato come argomento dell'evento onCreateView?

Il pattern classico per gestire la creazione e gestione del layout del tuo fragment è proprio questo:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container, false);
// Configurazioni varie ed eventuali
return view;
}

Easlay93
28-07-2015, 12:42
purtroppo ci ho gia provato ma non riesco a risolvere.
Se gli passo xml senza il merge non genera errori

Easlay93
05-08-2015, 14:46
;42708457']Piuttosto che ottenere l'inflater da LayoutInflater.from hai provato ad usare direttamente l'inflater che ti viene passato come argomento dell'evento onCreateView?

Il pattern classico per gestire la creazione e gestione del layout del tuo fragment è proprio questo:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout, container, false);
// Configurazioni varie ed eventuali
return view;
}


lo ho risolto cosi
LinearLayout wrapper = new LinearLayout(getActivity()); // for example
inflater.inflate(R.layout.activity_cuore2_timer, wrapper, true);
return wrapper;