Android开发:FloatingActionButton无障碍提示错误及点击崩溃问题求助
问题1:「No speakable text present」错误解决
这是Android无障碍检测的提示,因为FloatingActionButton未提供屏幕朗读用的描述文本,只需在XML配置中添加android:contentDescription属性即可:
<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroundTint="@color/ToolBar" android:src="@drawable/baseline_home_24" app:layout_anchor="@id/bottomBar" app:maxImageSize="35dp" android:tint="@color/white" android:id="@+id/faby" android:contentDescription="@string/fab_home_desc" /> <!-- 添加该行 -->
需要在res/values/strings.xml中定义对应字符串:
<string name="fab_home_desc">返回首页</string>
如果无需无障碍播报,也可设置为android:contentDescription="@null",但不推荐,会影响无障碍体验。
问题2:点击FAB触发致命异常解决
代码存在类型强制转换错误:你将FloatingActionButton对象赋值给了Button类型变量,运行时会抛出ClassCastException。修改Java代码,把变量类型改为FloatingActionButton即可:
android.support.design.widget.FloatingActionButton fab; // 修正变量类型 fab = findViewById(R.id.faby); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { replaceFragement(new Home()); } });
或者使用通用View类型,避免类型错误:
View fab = findViewById(R.id.faby); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { replaceFragement(new Home()); } });
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

