我有一项活动和另一项活动.当我向上滑动屏幕时,我希望我的第一个活动结束.动画应该像活动也在滑动.像通知屏幕一样.那可能吗?在发布此问题之前,我已经完成了许多Google搜索,但无法获得任何结果.
PS - 我不希望这被视为一个随意的问题,因为没有显示代码.我只需要一些点开始,我完全感到困惑.
正如 Android Developers 上的页面所说
用户可以通过从屏幕左边缘滑动或触摸操作栏上的应用程序图标来将导航抽屉带到屏幕上。
但奇怪的是,我 Activity 上的导航抽屉没有响应滑动动作。它仅在触摸操作栏上的图标时切换。下面是我对导航抽屉的实现
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
// Set up the drawer.
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
drawerLayout);
Run Code Online (Sandbox Code Playgroud)
对此有什么可能的解释吗?我怀疑的是我的活动默认情况下具有其片段之一的布局。所以是这个原因吗?
编辑:我的活动的布局文件
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainPage">
<!-- The main ocntent view -->
<FrameLayout android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!-- The navigation drawer-->
<fragment android:id="@+id/navigation_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:divider="@android:color/transparent"
android:name="com.example.android.handsfree.NavigationDrawerFragment"
tools:layout="@layout/fragment_navigation_drawer" />
Run Code Online (Sandbox Code Playgroud)
我有一个scala函数返回一个util.Map[String], util.Set[String].
def getAcls(): Map[String, Set[String]] = {
((for (groupRole: GroupRoleAccess <- groupRoleAccess;
user <- groupService.getGroup(groupRole.groupId).getUsers;
permissions = roleService.getRole(groupRole.roleId) .getPermissions)
yield user.getUserId -> permissions).groupBy(_._1).map { case (k,v) => (k, v.flatMap(_._2).asJava)})
}
Run Code Online (Sandbox Code Playgroud)
我只是在一组这些对象上调用此方法来获取util.Set[util.Map[String], util.Set[String]].
var unevaluatedacls = for (aclTemplate <- aclTemplates)
yield aclTemplate.getAcls
Run Code Online (Sandbox Code Playgroud)
当我检查时unevaluatedacls,我发现它属于那种类型HashSet.但它的元素是类型 Wrappers$MapWrapper而不是util.Map.结果,我无法坚持这个对象.我无法理解这种行为.当我尝试
var unevaluatedacls = (for (aclTemplate <- aclTemplates)
yield aclTemplate.getAcls).asJava
Run Code Online (Sandbox Code Playgroud)
在unevaluatedacls也变为Wrapper$SetWrapper.是因为我试图将不可变的scala集合转换为java集合吗?我知道只有可变的scala集合兼容才能使用转换为相应的java集合JavaConverters
假设我有两个模块ModuleA,ModuleB它们是自给自足的,可以用作独立模块。这两个模块都依赖于第三个模块,ModuleC例如
install(new ModuleC());
Run Code Online (Sandbox Code Playgroud)
现在,我有一个用例,我需要使用两个模块 A 和 B 创建一个注入器。 我这样做了:
Guice.createInjector(new ModuleA(), new ModuleB());
Run Code Online (Sandbox Code Playgroud)
它CreationException按预期抛出了一个,表示已经在其中一个模块中配置了对某个类的绑定。请记住,我没有改变的动力ModuleA和ModuleB,我怎么做工作?
我尝试使用,Modules.combine(Modules... modules)但这并没有解决我的问题。有什么解决方案吗?
我正在使用Rest/Jersey和Tomcat 7进行一个简单的Restful Web服务.如果我的所有Path都包含一个参数,那么工作正常.如果我包含一个使用多个参数的参数,当我尝试点击我的资源类支持的任何资源路径时,我会遇到"找不到注入源"错误 - 即使是之前正在工作的那些资源路径.如果我注释掉那段特定代码,那么我的所有其他路径都会按预期工作.但如果我取消注释掉那段代码,我就无法使用任何一条路径.
这是我的代码片段:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
// get all the information about a specific item
@GET
@Path("/{id}")
@Produces(MediaType.APPLICATION_JSON)
public String getItem(@PathParam("id") String itemId)
{
String answer = "{";
answer += "\"itemid\":\"" + itemId + "\",";
answer += "\"type\":0,";
answer += "\"sector\":322948,";
answer += "\"created\":53249098220";
answer += "}";
return answer;
}
// if I comment out this method, all is fine;
// if I leave it in, error is thrown when …Run Code Online (Sandbox Code Playgroud) 我有两个表,它们都有第一列作为PRIMARY,也是一个自动递增.第一个表有67个条目,从1到67开始,第二个表有48个条目.它们都有相同的列.我想从Table2中获取内容并将它们插入Table1,以便Table1中的下一个条目从68开始.最后,我将在Table1中有115个条目,PRIMARY列也将显示.我试过这个:
INSERT INTO `Table1` SELECT * FROM `Table2`
Run Code Online (Sandbox Code Playgroud)
但它说
#1062 - Duplicate entry '1' for key 'PRIMARY'
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我使用泛型函数合并了scala Set的scalaMap
def mergeMaps[A, B](ms: Set[Map[A, B]])(f: (B, B) => B): Map[A, B] =
(Map[A, B]() /: (for (m <- ms; kv <- m) yield kv))
{
(a, kv) =>
a + (if (a.contains(kv._1)) kv._1 -> f(a(kv._1), kv._2) else kv)
}
Run Code Online (Sandbox Code Playgroud)
这可以处理存在相同键冲突的情况.但是,我想在Scala Code中使用Java集合.我研究了一下然后发现了JavaConversions.我导入了它并写了这个
def mergeMaps[A, B](ms: Set[Map[A, B]])(f: (B, B) => B): Map[A, B] =
(new util.HashMap[A, B] /: (for (m <- ms; kv <- m) yield kv))
{
case (a, kv) =>
a + (if …Run Code Online (Sandbox Code Playgroud)