Fragment etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Fragment etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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();