我正在探索 java 8 中引入的静态和默认方法的可能性。
我有一个接口,它有 2 个默认方法来构造命令,我通过 ssh 在服务器上运行以远程执行一些简单的任务。移动鼠标需要 2 个参数:鼠标的 x 和 y 位置。
public interface Robot {
default String moveMouse(int x, int y) {
return constructCmd("java -jar move_mouse.jar " + x + " " + y);
}
default String clickLeft() {
return constructCmd("java -jar click_left.jar");
}
static String constructCmd(String cmd) {
return "export DISPLAY=:1.0\n" +
"cd Desktop\n" +
cmd;
}
}
Run Code Online (Sandbox Code Playgroud)
我有多个带有预设值的枚举,我可以有效地将所有枚举组合成一个而不使用任何接口,但是该枚举将包含数百或数千个值,我想使其保持一定的井井有条,所以我已经拆分了所有在多个枚举中。
我希望所有枚举共享相同的方法,所以我想我会在接口中提供默认方法。
public enum Field implements Robot {
AGE_FIELD(778, 232),
NAME_FIELD(662, 280);
public int x;
public int …Run Code Online (Sandbox Code Playgroud) 我想清除BottomNavigationView的选择,因此不会选择任何项目.
我有一个辅助工具方法:
public static void clearSelection(BottomNavigationView view) {
final BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
item.setChecked(false);
}
}
Run Code Online (Sandbox Code Playgroud)
这种工作方式,但不会将项目的颜色重置为未选中的项目(仅删除凸起的动画并规范化字体大小).
要设置BottomVanigationItemView颜色,我使用颜色选择器根据选中的状态设置颜色:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="@color/colorPrimaryLight" />
<item android:color="@color/colorPrimaryLightTransparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我试过了:
item.invalidate();
menuView.invalidate();
Run Code Online (Sandbox Code Playgroud)
那没用.如何强制视图根据颜色选择器重置颜色值?
我正在使用引导程序对导航栏进行编码,并且在导航栏的右侧添加了社交媒体链接,如果单击链接,则会在新窗口中打开它们。我想这样做,以便社交媒体链接在单击时不会活跃。
<ul class="nav navbar-nav navbar-right">
<li id="facebook">
<a href="#" target="_blank"><i class="fa fa-lg fa-facebook"></i></a>
</li>
<li id="twitter">
<a href="#" target="_blank"><i class="fa fa-lg fa-twitter"></i></a>
</li>
<li id "google-plus">
<a href="#" target="_blank"><i class="fa fa-lg fa-google-plus"></i></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的方法,但是它不起作用,我也不知道为什么?link1,将是该页面的默认活动链接。
<script>
$(".nav li").click(function() {
$(".nav li#link1").addClass('active');
$(".nav li#facebook").removeClass('active');
$(".nav li#twitter").removeClass('active');
$(".nav li#google-plus").removeClass('active');
});
</script>
Run Code Online (Sandbox Code Playgroud)