Change theme
Help
Press space for more information.
Show links for this issue (Shortcut: i, l)
Copy issue ID
Previous Issue (Shortcut: k)
Next Issue (Shortcut: j)
Sign in to use full features.
Vote: I am impacted
Notification menu
Refresh (Shortcut: Shift+r)
Go home (Shortcut: u)
Pending code changes (auto-populated)
View issue level access limits(Press Alt + Right arrow for more information)
Unintended behavior
View staffing
Description
Instead of DOWN, it should use the appropriate direction:
FOCUS_FORWARD/FOCUS_BACKWARD/FOCUS_UP/FOCUS_DOWN/FOCUS_LEFT/FOCUS_RIGHT
Sample:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(
CustomView(this).apply{
isFocusable = true
isFocusableInTouchMode = false
addView(
TextView(this@MainActivity).apply {
text = """
Press Tab/Shift+Tab/Up/Down/Left/Right to request focus
Click anywhere to release focus
""".trimIndent()
}
)
}
)
}
}
class CustomView(context: Context) : LinearLayout(context) {
override fun requestFocus(direction: Int, previouslyFocusedRect: Rect?): Boolean {
val focusDirection = when(direction) {
FOCUS_FORWARD -> "Focus Forward"
FOCUS_BACKWARD -> "Focus Backward"
FOCUS_UP -> "Focus Up"
FOCUS_DOWN -> "Focus Down"
FOCUS_LEFT -> "Focus Left"
FOCUS_RIGHT -> "Focus Right"
else -> "Unknown"
}
println("request focus called with $focusDirection")
return super.requestFocus(direction, previouslyFocusedRect)
}
}