我的导航抽屉一直显示最后选择的项目.有没有办法删除它.我想如果用户在主页,导航抽屉项目应该不突出显示.
我试过了
drawer.setSelected(false);
Run Code Online (Sandbox Code Playgroud)
在onResume()中.但它没有帮助.
请参考随附的截图,这将有助于理解.
我正在使用 Android 导航组件制作应用程序。但是我遇到了一个非常基本的问题,它可能会导致我的应用程序的整个开发出现问题。
情景
我有这个片段,onViewCreated我在其中观察我的视图模型中的一个字段。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel = ViewModelProviders.of(this).get(EventDetailsViewModel::class.java)
viewModel.init(context!!,eventId)
viewModel.onEventDetailsUpdated().observe(this, Observer {
setEventDetails(it)
})
}
Run Code Online (Sandbox Code Playgroud)
在该setEventDetails方法中,我使用数据设置了 recyclerviews。
问题
这个片段是一个带有卷轴的长片段。假设我向下滚动到一个部分,然后单击一个按钮,将我带到另一个片段。
但是当我回到这个片段时,它再次将我带到顶部并完成它在第一次加载时所做的一切。这可能令人不安。它有点像重新创建整个片段而不是保持其旧状态。
我试过的
我搜索了很多问题。并经历了This Github Query,This SO question,Another Git ......但我无法解决我的问题。
请帮助,提前致谢。
android android-fragments android-jetpack android-architecture-navigation android-jetpack-navigation
我暂时面对这个问题并注意到其他一些人也遇到过这个问题,但我无法解决它.
问题
我有一个BroadcastReceiver,它一直在监听互联网的变化.因此,无论何时连接或断开互联网,我都会获得onReceive接收器的状态.
问题是它总是被调用两次.当我连接调试器并在代码中有断点时,我可以看到它被调用两次但我的状态更改代码执行.未连接调试器时,在这种情况下,我的状态更改代码根本不会执行.
我的守则
BroadcastReceiver文件
public class ConnectivityReceiver
extends BroadcastReceiver {
public static ConnectivityReceiverListener connectivityReceiverListener;
public ConnectivityReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent arg1) {
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();
if (connectivityReceiverListener != null) {
connectivityReceiverListener.onNetworkConnectionChanged(isConnected);
}
}
public static boolean isConnected() {
ConnectivityManager
cm = (ConnectivityManager) MyApplication.getInstance().getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null
&& activeNetwork.isConnectedOrConnecting();
}
public …Run Code Online (Sandbox Code Playgroud) android android-networking android-activity android-broadcast android-broadcastreceiver
我为我的应用程序设计了底部导航视图。这个想法很简单,绿色底部栏将有白色图标。我为此写了一个选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:color="@android:color/white" />
<item android:color="@android:color/holo_blue_dark" />
</selector>
Run Code Online (Sandbox Code Playgroud)
它有效,它改变了图标颜色,但它并没有使其完全变成白色,颜色看起来呈灰色。我也尝试过,<item android:state_selected="true" android:color="@android:color/white" />但它也不起作用。我添加了下面的图片供您查看差异。
请帮忙
android android-xml android-bottomnav android-bottomnavigationview
android ×4
android-architecture-navigation ×1
android-bottomnavigationview ×1
android-menu ×1
android-xml ×1