微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

recyclerview 未显示在导航抽屉下

如何解决recyclerview 未显示在导航抽屉下

我正在尝试创建一个浏览器,该浏览器具有一个导航抽屉和一个 recyclerView,其中包含新网站的标签。导航抽屉弹出,但 recyclerview 没有显示

这是我的适配器代码

class NavigationTabAdapter (context: Context,contentData:ArrayList<Tab>) :
    RecyclerView.Adapter<NavigationTabAdapter.NavigationViewHolder>() {

var mcontext:Context?=null
var contentList:ArrayList<Tab>?=null
var tabInterface:TabInterface?=null

init {
    mcontext=context
    contentList=contentData
    tabInterface=context as TabInterface
}

override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): NavigationViewHolder {
    val itemView=LayoutInflater.from(parent.context).inflate(R.layout.row_custom_recycler_tab,parent,true)
    return NavigationViewHolder(itemView)
}

override fun onBindViewHolder(holder: NavigationViewHolder,position: Int) {
    holder.row_text?.setText(contentList?.get(position)?.url)
    holder.row_img_remove?.setonClickListener {
         if (contentList!!.size>1)
         {
          tabInterface?.deleteItem(contentList?.get(position)?.id!!,position)
         }
    }

这是我的ma​​inActivity xml

enter code     //Navigation drawer
var drawerLayout:DrawerLayout?=null
var tabsDatabase:TabsDatabase?=null
var navigationRecyclerView:RecyclerView?=null
var navigationTabAdapter:NavigationTabAdapter?=null
var listWebLinks:ArrayList<Tab>?=null
var itemClickedPosition:Int=-1
var idForClickedPosition:Int=-1
var url:String?=null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val toolbar=findViewById<Toolbar>(R.id.appBar)
    setSupportActionBar(toolbar)

    drawerLayout=findViewById(R.id.drawer_layout)
    val toggle=ActionBarDrawerToggle(this@MainActivity,drawerLayout,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close)

    drawerLayout?.addDrawerListener(toggle)
    toggle.syncState()

    tabsDatabase= TabsDatabase(this)
    navigationRecyclerView=findViewById(R.id.nav_recycler_view)
    navigationRecyclerView?.layoutManager=linearlayoutmanager(this)
    navigationRecyclerView?.itemAnimator=DefaultItemAnimator()
    listWebLinks= ArrayList()
    
    searchView = findViewById(R.id.search_View)
    webview = findViewById(R.id.webImage)
    progressBar = findViewById(R.id.progressBar)
    inputMethodManager=getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    mainScreen=findViewById(R.id.mainScreen)


    webview!!.settings.javaScriptEnabled = true
    webview!!.webViewClient = object :WebViewClient() {
        override fun shouldOverrideUrlLoading(view: WebView?,url:String
        ): Boolean {
            view!!.loadUrl(url)
            return true
        }

        override fun onPageStarted(view: WebView?,url: String?,favicon: Bitmap?) {
            super.onPageStarted(view,url,favicon)
            if (url.equals("about:blank"))
            {
                mainScreen?.visibility=View.VISIBLE
                webview?.visibility
                return
            }

            if (!(progressBar!!.isShown))
            {
                progressBar?.visibility = View.VISIBLE
                view!!.visibility=View.GONE
            }
            searchView!!.onActionViewExpanded()
            searchView!!.setQuery(webview!!.url,false)
            searchView!!.clearFocus()
        }

        override fun onPageFinished(view: WebView?,url: String?) {
            super.onPageFinished(view,url)
            if (progressBar!!.isShown)
            {
                progressBar!!.visibility = View.GONE
                view!!.visibility=View.VISIBLE
            }
            findViewById<ImageView>(R.id.backwardImage)!!.isEnabled=true
            findViewById<ImageView>(R.id.backwardImage)!!.setimageResource(R.drawable.undo_blue)
            if (!(webview!!.canGoForward()))
            {
                findViewById<ImageView>(R.id.forwardImage)?.isEnabled=false
                findViewById<ImageView>(R.id.forwardImage)?.setimageResource(R.drawable.redo_blue)
            }
            findViewById<ImageView>(R.id.homeImage)?.isEnabled=true
            findViewById<ImageView>(R.id.homeImage)?.setimageResource(R.drawable.home_orange)
            if (itemClickedPosition!=-1)
            {
            updateItem(idForClickedPosition,url)
            }
        }
    }

    searchView?.setonQueryTextListener(object :SearchView.OnQueryTextListener{
        override fun onQueryTextSubmit(query: String): Boolean {
            try {
                val bool:Boolean=URLUtil.isValidUrl(query)

                if (bool)
                {
                    webview!!.loadUrl(query)
                }
                else
                {
                    webview!!.loadUrl("https://"+query.replace("",""))
                    findViewById<LinearLayout>(R.id.mainScreen).visibility = View.GONE
                }
                findViewById<ImageView>(R.id.backwardImage).isEnabled=true
                findViewById<ImageView>(R.id.backwardImage).setimageResource(R.drawable.undo_orange)
                findViewById<ImageView>(R.id.homeImage)?.isEnabled=true
                findViewById<ImageView>(R.id.homeImage).setimageResource(R.drawable.home_orange)
                inputMethodManager!!.hideSoftInputFromWindow(currentFocus?.windowToken,0)
            }
            catch (e:Exception)
            {
                Toast.makeText(this@MainActivity,""+e.printstacktrace(),Toast.LENGTH_SHORT).show()
            }

            return true
        }

        override fun onQueryTextChange(newText: String?): Boolean {
       return false
        }

    })
    try {
        listWebLinks = tabsDatabase?.readData()
        if (listWebLinks!!.size == 0)
        {
            tabsDatabase?.insertData("Home Page")
            listWebLinks = tabsDatabase?.readData()
            itemClickedPosition = 0
        } else {
            itemClickedPosition = listWebLinks!!.size - 1
        }

        navigationTabAdapter = NavigationTabAdapter(this,listWebLinks!!)
        navigationRecyclerView?.adapter = navigationTabAdapter
        navigationTabAdapter?.notifyDataSetChanged()
        navigationRecyclerView?.setHasFixedSize(true)
    } catch (e: Exception) {
        e.printstacktrace()
    }

数据库文件

class TabsDatabase:sqliteOpenHelper {

constructor(context: Context) : super(context,DB_NAME,null,DB_VERSION)

override fun onCreate(sqliteDatabase: sqliteDatabase?) {
    sqliteDatabase?.execsql("CREATE TABLE" + TABLE_NAME + "(" + COL_ID +
    " INTEGER PRIMARY KEY," + COL_URL + "TEXT);")
}

override fun onUpgrade(sqliteDatabase: sqliteDatabase?,p1: Int,p2: Int) {
    sqliteDatabase?.execsql("Drop table IF EXISTS" + TABLE_NAME)
}

fun insertData(url:String):Boolean?{
    var result = true
    try{
        val db= this.writableDatabase
        var cv=ContentValues()
        cv.put(COL_URL,url)
        db.insert(TABLE_NAME,cv)>0
        db.close()
    }catch (e:Exception) {
        result = false
    }
        return result
    }
fun updateData(id:Int,url:String):Boolean?{
        var result = true
        try{
            val db= this.writableDatabase
            var cv=ContentValues()
            cv.put(COL_URL,url)
            db.update(TABLE_NAME,cv,"id=?",arrayOf(id.toString())) >0
            db.close()
        }catch (e:Exception)
        {
            result= false
        }
    return true
}
fun readData():ArrayList<Tab>{
    var list=ArrayList<Tab>()
    var db=this.readableDatabase
    val query="select * from" + TABLE_NAME + "ORDER BY id ASC"
    val result=db.rawQuery(query,null)

    if(result.movetoFirst())
    {
        do{
            var tab = Tab()
            tab.id=result.getInt(result.getColumnIndex(COL_ID).toInt())
            tab.url=result.getString(result.getColumnIndex(COL_URL))
            list.add(tab)
        }while (result.movetoNext())
    }
    result.close()
    db.close()
    return list
}
fun deleteData(id:Int) {
    val db=this.writableDatabase
    db.delete(TABLE_NAME,COL_ID + "=" +id,null)
    db.close()
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。