parent
362de2d493
commit
57dd30ee69
@ -0,0 +1,84 @@ |
||||
package io.legado.app.ui.widget.dialog |
||||
|
||||
import android.content.Context |
||||
import android.os.Bundle |
||||
import android.util.DisplayMetrics |
||||
import android.view.LayoutInflater |
||||
import android.view.View |
||||
import android.view.ViewGroup |
||||
import androidx.fragment.app.FragmentManager |
||||
import androidx.recyclerview.widget.LinearLayoutManager |
||||
import io.legado.app.R |
||||
import io.legado.app.base.BaseDialogFragment |
||||
import io.legado.app.base.adapter.ItemViewHolder |
||||
import io.legado.app.base.adapter.SimpleRecyclerAdapter |
||||
import kotlinx.android.synthetic.main.dialog_recycler_view.* |
||||
import kotlinx.android.synthetic.main.item_log.view.* |
||||
|
||||
class TextListDialog : BaseDialogFragment() { |
||||
|
||||
companion object { |
||||
fun show(fragmentManager: FragmentManager, values: ArrayList<String>) { |
||||
TextListDialog().apply { |
||||
val bundle = Bundle() |
||||
bundle.putStringArrayList("values", values) |
||||
arguments = bundle |
||||
}.show(fragmentManager, "textListDialog") |
||||
} |
||||
} |
||||
|
||||
lateinit var adapter: TextAdapter |
||||
var values: ArrayList<String>? = null |
||||
|
||||
override fun onStart() { |
||||
super.onStart() |
||||
val dm = DisplayMetrics() |
||||
activity?.windowManager?.defaultDisplay?.getMetrics(dm) |
||||
dialog?.window?.setLayout((dm.widthPixels * 0.9).toInt(), (dm.heightPixels * 0.9).toInt()) |
||||
} |
||||
|
||||
override fun onCreateView( |
||||
inflater: LayoutInflater, |
||||
container: ViewGroup?, |
||||
savedInstanceState: Bundle? |
||||
): View? { |
||||
return inflater.inflate(R.layout.dialog_recycler_view, container) |
||||
} |
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { |
||||
tool_bar.title = getString(R.string.log) |
||||
arguments?.let { |
||||
values = it.getStringArrayList("values") |
||||
} |
||||
recycler_view.layoutManager = LinearLayoutManager(requireContext()) |
||||
adapter = TextAdapter(requireContext()) |
||||
recycler_view.adapter = adapter |
||||
adapter.setItems(values) |
||||
} |
||||
|
||||
class TextAdapter(context: Context) : |
||||
SimpleRecyclerAdapter<String>(context, R.layout.item_log) { |
||||
override fun convert(holder: ItemViewHolder, item: String, payloads: MutableList<Any>) { |
||||
holder.itemView.apply { |
||||
if (text_view.getTag(R.id.tag1) == null) { |
||||
val listener = object : View.OnAttachStateChangeListener { |
||||
override fun onViewAttachedToWindow(v: View) { |
||||
text_view.isCursorVisible = false |
||||
text_view.isCursorVisible = true |
||||
} |
||||
|
||||
override fun onViewDetachedFromWindow(v: View) {} |
||||
} |
||||
text_view.addOnAttachStateChangeListener(listener) |
||||
text_view.setTag(R.id.tag1, listener) |
||||
} |
||||
text_view.text = item |
||||
} |
||||
} |
||||
|
||||
override fun registerListener(holder: ItemViewHolder) { |
||||
//nothing |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue