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