mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
Android: Set parent when inflating RecyclerView.ViewHolders
This makes sure view holders get proper widths when they use layout_width="match_parent". This becomes quite noticeable for AdvancedMappingControlAdapter in the next commit, but I'm also making the change for other adapters while I'm at it.
This commit is contained in:
@ -37,7 +37,8 @@ class GameAdapter : RecyclerView.Adapter<GameViewHolder>(),
|
||||
* @return The created ViewHolder with references to all the child view's members.
|
||||
*/
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GameViewHolder {
|
||||
val binding = CardGameBinding.inflate(LayoutInflater.from(parent.context))
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
val binding = CardGameBinding.inflate(inflater, parent, false)
|
||||
binding.root.apply {
|
||||
setOnClickListener(this@GameAdapter)
|
||||
setOnLongClickListener(this@GameAdapter)
|
||||
|
@ -43,17 +43,17 @@ class CheatsAdapter(
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
return when (viewType) {
|
||||
CheatItem.TYPE_CHEAT -> {
|
||||
val listItemCheatBinding = ListItemCheatBinding.inflate(inflater)
|
||||
val listItemCheatBinding = ListItemCheatBinding.inflate(inflater, parent, false)
|
||||
addViewListeners(listItemCheatBinding.getRoot())
|
||||
CheatViewHolder(listItemCheatBinding)
|
||||
}
|
||||
CheatItem.TYPE_HEADER -> {
|
||||
val listItemHeaderBinding = ListItemHeaderBinding.inflate(inflater)
|
||||
val listItemHeaderBinding = ListItemHeaderBinding.inflate(inflater, parent, false)
|
||||
addViewListeners(listItemHeaderBinding.root)
|
||||
HeaderViewHolder(listItemHeaderBinding)
|
||||
}
|
||||
CheatItem.TYPE_ACTION -> {
|
||||
val listItemSubmenuBinding = ListItemSubmenuBinding.inflate(inflater)
|
||||
val listItemSubmenuBinding = ListItemSubmenuBinding.inflate(inflater, parent, false)
|
||||
addViewListeners(listItemSubmenuBinding.root)
|
||||
ActionViewHolder(listItemSubmenuBinding)
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ class AdvancedMappingControlAdapter(
|
||||
viewType: Int
|
||||
): AdvancedMappingControlViewHolder {
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
val binding = ListItemAdvancedMappingControlBinding.inflate(inflater)
|
||||
val binding = ListItemAdvancedMappingControlBinding.inflate(inflater, parent, false)
|
||||
return AdvancedMappingControlViewHolder(binding, parentLifecycle, isInput, onClickCallback)
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ class RiivolutionAdapter(private val context: Context, private val patches: Riiv
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RiivolutionViewHolder {
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
val binding = ListItemRiivolutionBinding.inflate(inflater)
|
||||
val binding = ListItemRiivolutionBinding.inflate(inflater, parent, false)
|
||||
return RiivolutionViewHolder(binding.root, binding)
|
||||
}
|
||||
|
||||
|
@ -68,57 +68,48 @@ class SettingsAdapter(
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
return when (viewType) {
|
||||
SettingsItem.TYPE_HEADER -> HeaderViewHolder(
|
||||
ListItemHeaderBinding.inflate(inflater),
|
||||
ListItemHeaderBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_SWITCH -> SwitchSettingViewHolder(
|
||||
ListItemSettingSwitchBinding.inflate(inflater),
|
||||
ListItemSettingSwitchBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_STRING_SINGLE_CHOICE,
|
||||
SettingsItem.TYPE_SINGLE_CHOICE_DYNAMIC_DESCRIPTIONS,
|
||||
SettingsItem.TYPE_SINGLE_CHOICE -> SingleChoiceViewHolder(
|
||||
ListItemSettingBinding.inflate(inflater),
|
||||
ListItemSettingBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_SLIDER -> SliderViewHolder(
|
||||
ListItemSettingBinding.inflate(
|
||||
inflater
|
||||
), this, context
|
||||
ListItemSettingBinding.inflate(inflater, parent, false),
|
||||
this,
|
||||
context
|
||||
)
|
||||
SettingsItem.TYPE_SUBMENU -> SubmenuViewHolder(
|
||||
ListItemSubmenuBinding.inflate(
|
||||
inflater
|
||||
), this
|
||||
ListItemSubmenuBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_INPUT_MAPPING_CONTROL -> InputMappingControlSettingViewHolder(
|
||||
ListItemMappingBinding.inflate(inflater),
|
||||
ListItemMappingBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_FILE_PICKER -> FilePickerViewHolder(
|
||||
ListItemSettingBinding.inflate(
|
||||
inflater
|
||||
), this
|
||||
ListItemSettingBinding.inflate(inflater, parent, false),
|
||||
this
|
||||
)
|
||||
SettingsItem.TYPE_RUN_RUNNABLE -> RunRunnableViewHolder(
|
||||
ListItemSettingBinding.inflate(
|
||||
inflater
|
||||
), this, context
|
||||
ListItemSettingBinding.inflate(inflater, parent, false),
|
||||
this, context
|
||||
)
|
||||
SettingsItem.TYPE_STRING -> InputStringSettingViewHolder(
|
||||
ListItemSettingBinding.inflate(
|
||||
inflater
|
||||
), this
|
||||
ListItemSettingBinding.inflate(inflater, parent, false), this
|
||||
)
|
||||
SettingsItem.TYPE_HYPERLINK_HEADER -> HeaderHyperLinkViewHolder(
|
||||
ListItemHeaderBinding.inflate(
|
||||
inflater
|
||||
), this
|
||||
ListItemHeaderBinding.inflate(inflater, parent, false), this
|
||||
)
|
||||
SettingsItem.TYPE_DATETIME_CHOICE -> DateTimeSettingViewHolder(
|
||||
ListItemSettingBinding.inflate(
|
||||
inflater
|
||||
), this
|
||||
ListItemSettingBinding.inflate(inflater, parent, false), this
|
||||
)
|
||||
else -> throw IllegalArgumentException("Invalid view type: $viewType")
|
||||
}
|
||||
|
Reference in New Issue
Block a user