android.app.Fragment sınıfı, API 28 (Android 9.0 – Pie) ile birlikte deprecated oldu yani kullanımdan kaldırıldı. Bundan dolayı API 28 ile uygulama geliştiriyorsanız getter for fragmentManager: FragmentManager!’ is deprecated. Deprecated in Java şeklinde bir uyarı ile karşılaşacaksınız. Bunun sebebi android.app.Fragment sınıfının artık kullanımdan kaldırılmış olmasıdır.
İşin ilginç yanı bu uyarıyı Fragment’in kendisinde değil çağırdığınız yerden almanızdır. Yani
fragmentManager.beginTransaction().add(R.id.fragmentRatingBar, df).commit()
şeklinde çağırdığınızda fragmentManager yukarda olduğu gibi üstü çizili bir şekilde sizi uyaracaktır.
FragmentManager is Deprecated Sorununun Çözümü:
android.app.Fragment yerine android.support.v4.app.Fragment kullandığınızda sorun çözülür. Bunun için Fragmentinize giderek import bölümünde android.app. Fragment yazısını silin veya benim yaptığım gibi yorum satırı yapın ve yerine android.support.v4.app.Fragment kullanın.
FRAGMENT :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package net.hepteknoloji.fragment // import android.app.Fragment import android.support.v4.app.Fragment import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.RatingBar import android.widget.TextView class Fragment_RatingBar : Fragment() { internal var puan = 0 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.frag_ratingbar, container, false) } } |
Ardından fragmenti çağırdığınız yere gidin ve aşağıdaki şekilde çağırın:
CLASS :
1 |
supportFragmentManager.beginTransaction().add(R.id.fragmentRatingBar, df).commit() |
İyi kodlamalar…
1 comment
Ben de bun sorunla karşılaştım. Güzel Çözüm