优化导航栏位置

pull/1395/head
gedoor 4 years ago
parent 99c0db589c
commit 585415c541
  1. 6
      app/src/main/java/io/legado/app/ui/book/read/ReadBookBaseActivity.kt
  2. 6
      app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt
  3. 22
      app/src/main/java/io/legado/app/utils/ActivityExtensions.kt

@ -157,17 +157,17 @@ abstract class ReadBookBaseActivity :
0 0
} }
when (navigationBarPos) { when (navigationBarPos) {
0 -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply { POS.BOTTOM -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply {
height = navigationBarHeight height = navigationBarHeight
width = MATCH_PARENT width = MATCH_PARENT
gravity = Gravity.BOTTOM gravity = Gravity.BOTTOM
} }
1 -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply { POS.LEFT -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT height = MATCH_PARENT
width = navigationBarHeight width = navigationBarHeight
gravity = Gravity.LEFT gravity = Gravity.LEFT
} }
2 -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply { POS.RIGHT -> layoutParams = (layoutParams as FrameLayout.LayoutParams).apply {
height = MATCH_PARENT height = MATCH_PARENT
width = navigationBarHeight width = navigationBarHeight
gravity = Gravity.RIGHT gravity = Gravity.RIGHT

@ -316,9 +316,9 @@ class ReadMenu @JvmOverloads constructor(
vwMenuBg.setOnClickListener { runMenuOut() } vwMenuBg.setOnClickListener { runMenuOut() }
root.padding = 0 root.padding = 0
when (activity?.navigationBarPos) { when (activity?.navigationBarPos) {
0 -> root.bottomPadding = navigationBarHeight POS.BOTTOM -> root.bottomPadding = navigationBarHeight
1 -> root.leftPadding = navigationBarHeight POS.LEFT -> root.leftPadding = navigationBarHeight
2 -> root.rightPadding = navigationBarHeight POS.RIGHT -> root.rightPadding = navigationBarHeight
} }
} }
if (!LocalConfig.readMenuHelpVersionIsLast) { if (!LocalConfig.readMenuHelpVersionIsLast) {

@ -77,24 +77,22 @@ val Activity.navigationBarHeight: Int
* 1 left * 1 left
* 2 right * 2 right
*/ */
val Activity.navigationBarPos: Int val Activity.navigationBarPos: POS
get() { get() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
var pos = 0
val display: Display = windowManager.defaultDisplay val display: Display = windowManager.defaultDisplay
val rotate: Int = display.rotation val rotate: Int = display.rotation
val height: Int = display.height val height: Int = display.height
val width: Int = display.width val width: Int = display.width
pos = if (width > height) { return if (width > height) {
if (rotate == Surface.ROTATION_270) { if (rotate == Surface.ROTATION_270) {
1 //left POS.LEFT
} else { } else {
2 //right POS.RIGHT
} }
} else { } else {
0 //bottom POS.BOTTOM
} }
return pos
} else { } else {
val display: Display = windowManager.defaultDisplay val display: Display = windowManager.defaultDisplay
val metricsReal = DisplayMetrics() val metricsReal = DisplayMetrics()
@ -110,9 +108,13 @@ val Activity.navigationBarPos: Int
val realH = metricsReal.heightPixels val realH = metricsReal.heightPixels
return if (currW != realW && currH == realH) { return if (currW != realW && currH == realH) {
2 POS.RIGHT
} else { } else {
0 POS.BOTTOM
} }
} }
} }
enum class POS {
BOTTOM, LEFT, RIGHT
}
Loading…
Cancel
Save