28 Eylül 2017 Perşembe

Fragment Sınıfı

Fragment Nedir?
Fragment Activity nesnesinin modüler bir  parçasıdır. Kendi yaşam döngüsü vardır ve kendi event'lerini alır.

Ana XML
Fragment main_activity.xml'de şöyle gösterilir.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/homebuttons_fragment_container"
        android:layout_width="match_parent"
        android:layout_height="200dp" />
Kalıtım
Şöyle yaparız.
public class UsersView extends Fragment {

  View myView;

  @Nullable
  @Override
  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
    @Nullable Bundle savedInstanceState) {
    myView = inflater.inflate(R.layout.users, container, false);

    ...
    // The End
    return myView;
  }

}
Fragment Değiştirme
Bir fragment başka bir fragment ile değiştirilebilir.
public void replaceFragment(Fragment someFragment) {
  FragmentTransaction transaction = getFragmentManager().beginTransaction();
  transaction.replace(R.id.frame_container, someFragment);
  transaction.addToBackStack(null);
  transaction.commit();
}
Şöyle çağırırız.
Fragment fragment = new AboutFragment();
replaceFragment(fragment);
OnCreateView metodu
Şöyle yaparız.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

  View view = inflater.inflate(R.layout.fragment_home, container, false);
  ....
  return view;
}
View yaratıldıktan sonra içindeki nesneler elde edilir. Şöyle yaparız.
myButton = (Button) view.findViewById(R.id.button);
getContext metodu
Bu metod fragment'i içeren activity'nin context'ini döndürür. Fragment kendini içeren activity nesnesini bilir.
// Activity this fragment is attached to.
FragmentHostCallback mHost;
Metodun içinden de host nesnesinin kullanıldığı görülebilir.
/**
 * Return the {@link Context} this fragment is currently associated with.
 */
public Context getContext() {
    return mHost == null ? null : mHost.getContext();
}
getActivity metodu
Fragment içinde Toast yaratmak istersek şöyle yaparız
Toast.makeText(getActivity(), "...", Toast.LENGTH_LONG).show();


Hiç yorum yok:

Yorum Gönder