У меня есть фрагмент диалога, который расширен с SupportBlurDialogFragment()
, и в этом представлении у меня есть несколько фрагментов, и в одном из этих фрагментов мне нужно открыть счетчик. Моя проблема в том, что когда у меня маленький диалог, я не вижу весь свой элемент в выпадающем меню. это мой фрагмент фрагмента диалога, в котором я открываю только свой фрагмент:
class MyDialogFragment : SupportBlurDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
tourReserve = TourReserve.getInstance()
this.dialog!!.window!!.decorView.setBackgroundResource(android.R.color.transparent)
val ft = childFragmentManager.beginTransaction()
ft.replace(R.id.containerRegisterTour, SpinnerContainerFragment.newInstance())
ft.commit()
}
}
, а это мой SpinnerContainerFragment
класс:
class SpinnerContainerFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_spinner_container, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// set up spinner data and adapter and click listener
val spinnerData: ArrayList<String> = ArrayList()
for (count in 1..20) {
spinnerData.add(count.toString())
}
spinnerData.add("people count")
val adapter = SpinnerAdapter(context, spinnerData, R.layout.simple_custom_spinner_item)
adapter.setDropDownViewResource(R.layout.simple_custom_spinner_dropdown_item)
peopleCountTourReg.adapter = adapter
peopleCountTourReg.setSelection(adapter.count)
peopleCountTourReg.onItemSelectedListener =
object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {
}
override fun onItemSelected(
p0: AdapterView<*>?,
p1: View?,
p2: Int,
p3: Long
) {
if ((p2+1) != spinnerData.size) {
//some code here after selection
}
}
}
}
}
, что я пробовал до сих пор:
Я попытался установить ограничение для высоты dropDow в счетчике, как показано ниже, но оно не сработало:
try {
val popup = Spinner::class.java.getDeclaredField("mPopup")
popup.isAccessible = true
// Get private mPopup member variable and try cast to ListPopupWindow
val popupWindow = popup.get(peopleCountTourReg) as android.widget.ListPopupWindow
// Set popupWindow height to 50px
popupWindow.height = 50
} catch (e: NoClassDefFoundError) {
// silently fail...
} catch (e: ClassCastException) {
} catch (e: NoSuchFieldException) {
} catch (e: IllegalAccessException) {
}
как я могу показать все данные в моем счетчике? я должен получить родительскую высоту счетчика и установить ее для высоты выпадающего меню?