В чем преимущество использования Fragments в Android, а не Views?

При разработке под Android вы можете установить целевой (или минимальный) sdk на 4 (API 1.6) и добавить пакет совместимости с android (v4), чтобы добавить поддержку Fragments. Вчера я сделал это и успешно реализовал Fragments для визуализации данных из пользовательского класса.

Мой вопрос заключается в следующем: в чем преимущество использования Fragments в отличие от простого получения View из пользовательского объекта, при этом сохраняя поддержку API 1.5?

Например, допустим, у меня есть класс Foo. java:

public class Foo extends Fragment {

    /** Title of the Foo object*/
    private String title;
    /** A description of Foo */
    private String message;

    /** Create a new Foo
     * @param title
     * @param message */
    public Foo(String title, String message) {
        this.title = title;
        this.message = message;
    }//Foo

    /** Retrieves the View to display (supports API 1.5. To use,
     * remove 'extends Fragment' from the class statement, along with
     * the method {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}) 
     * @param context Used for retrieving the inflater */
    public View getView(Context context) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.foo, null);
        TextView t = (TextView) v.findViewById(R.id.title);
        t.setText(this.title);
        TextView m = (TextView) v.findViewById(R.id.message);
        m.setText(this.message);
        return v;
    }//getView 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        View v = inflater.inflate(R.layout.foo, null);
        TextView t = (TextView) v.findViewById(R.id.title);
        t.setText(this.title);
        TextView m = (TextView) v.findViewById(R.id.message);
        m.setText(this.message);
        return v;
    }//onCreateView

}//Foo

Оба метода очень просты для создания и работы в Activity, которая, скажем, имеет List для отображения (например, программно добавляя каждый в ScrollView), так действительно ли Fragments настолько полезны, или это просто чрезмерное упрощение получения View, как в коде выше?

102
задан Phil 10 April 2018 в 06:26
поделиться