2017-08-09 30 views
-2

我是新來科特林我加入底欄在我的應用程序如何在Kotlin中加載片段?

val bottomNavigationView = findViewById<View>(R.id.navigation) as BottomNavigationView 
    BottomNavigationViewHelper.removeShiftMode(bottomNavigationView) 
    bottomNavigationView.setOnNavigationItemSelectedListener { item -> 
     var selectedFragment: Fragment? = null 
     when (item.itemId) { 
      R.id.action_item1 -> selectedFragment = ItemOneFragment.newInstance() 
      R.id.action_item2 -> selectedFragment = ItemTwoFragment.newInstance() 
      R.id.action_item3 -> selectedFragment = ItemThreeFragment.newInstance() 
      R.id.action_item4 -> selectedFragment = ItemThreeFragment.newInstance() 
     } 
     val transaction = supportFragmentManager.beginTransaction() 
     transaction.replace(R.id.frame_layout, selectedFragment) 
     transaction.commit() 
     true 
    } 

    //Manually displaying the first fragment - one time only 
    val transaction = supportFragmentManager.beginTransaction() 
    transaction.replace(R.id.frame_layout, ItemOneFragment.newInstance()) 
    transaction.commit() 

ItemOneFragment.java

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
public class ItemOneFragment extends Fragment { 
public static ItemOneFragment newInstance() { 
    ItemOneFragment fragment = new ItemOneFragment(); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.fragment_item_one, container, false); 
}} 

但我得到的錯誤:所需 類型不匹配:在片段ItemOneFragment.newInstance( ) 我試過所有的東西 在此先感謝。

+0

你可以顯示'ItemOneFragment.newInstance()'方法嗎? –

+0

ChristianBrüggemann 我製作了片段 – Darshan

+0

是的,但是你可以在這裏發佈該方法的代碼(甚至可以是全班)嗎? –

回答

0

看起來您在導入android.app.Fragment的文件中包含您的bottomNavigationView代碼。 ItemOneFragment.newInstance()返回android.support.v4.app.Fragment,這將與android.app.Fragment不兼容。

更改導入到android.support.v4.app.Fragment應解決問題。