我遇到了问题。我有工具栏的自定义布局和我的活动xml,我包括这个工具栏。我活动的结构是:
include
标记位于顶部的工具栏布局。我面临的问题是,在某些设备上,它是完美的,但在少数设备中(在moto G系列设备上测试),底部标签是留空间。
请参阅下面的图片:
在普通电话中显示预期的用户界面
在MOTO G系列中
xml代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#efeded"
android:weightSum="11"
android:orientation="vertical">
<include layout="@layout/custom_tool_bar" />
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
style="@style/BottomTabLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#fff"
android:layout_weight="1"
app:tabIndicatorColor="@color/colorPrimaryDark"
app:tabSelectedTextColor="@color/colorPrimaryDark"
/>
</LinearLayout>
答案 0 :(得分:2)
android:weightSum=11
属性; android:layout_weight=10
属性更改为android:layout_weight=1
; android:layout_weight=1
属性再试一次。
答案 1 :(得分:1)
对于底部标签,您可以使用 bottomnavigationview ,它可以提供更好的性能,并且可以在MOTO设备中运行而不会出现任何问题。检查一下
https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html
答案 2 :(得分:0)
我发现问题为什么会发生。我在我的Activity中使用了一个库ResideMenu,它有一个功能来检测设备是否有硬件后退和菜单按钮或数字按钮。
@HystrixCommand(fallbackMethod = "fallBackMethod", groupKey = "CircuitBreaker", commandKey = "somekey", threadPoolKey = "somekey",
commandProperties = {
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "10000"),
@HystrixProperty(name = "execution.timeout.enabled", value = "false"),
@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "20"),
@HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "1200000"),
},
threadPoolProperties = {
@HystrixProperty(name = "coreSize", value = "30"),
@HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds", value = "180000")
})
public void someMethod(....){
try {
// Call external service
} catch(Exception e) {
if(exception to be ignored)
throw new HystrixBadRequestException("Some message", e);
else
throw e
}
}
这不能正常工作。对于某些设备,它工作正常,但对于某些设备,它无法确定按钮。因此,在某些设备中,它会为数字按钮留出空间。 无论如何,我找不到一个解决方案,尝试了一些StackOverflow,但它没有成功,如果有人发现了什么,请发帖。