小编Ita*_*ski的帖子

Git:拉一个重新分支

让我来描述我的情况:

Blond先生和Orange先生正在研究分支A,它在提交M1的主分支上分支出来.分支A有2个提交:A1和A2.

M1  
   \
    \
     A1 - A2
Run Code Online (Sandbox Code Playgroud)

与此同时,奥兰治先生承诺并在主分公司M2和M3上多推了两笔.

M1  - M2 - M3
   \
    \
     A1 - A2
Run Code Online (Sandbox Code Playgroud)

布朗先生从遥控器拉出来,过了一会儿决定重新进入主分支:

M1  - M2 - M3
   \         \
    \         \
     A1 - A2   A1` - A2`
Run Code Online (Sandbox Code Playgroud)

现在A1`和A2`是在先生金发的本地存在的衍合的提交,以及A1和A2远程存在.金发先生推动他的提交,使用-f强制他的改变并"重写"历史.现在远程存储库看起来像这样:

M1  - M2 - M3
             \
              \
               A1` - A2`
Run Code Online (Sandbox Code Playgroud)

但奥兰治先生也在A分公司工作.他的本地存储库仍然如下所示:

M1  - M2 - M3
   \
    \
     A1 - A2
Run Code Online (Sandbox Code Playgroud)

Orange先生需要做什么才能与远程存储库中的A分支同步?

正常拉动不起作用.请拉-f强制远程本地的更改?我知道删除本地版本的A并从远程存储库再次提供它将会起到作用,但这似乎并不是实现这一目标的好方法.

git push pull rebase

45
推荐指数
4
解决办法
2万
查看次数

ScrollView手势识别器吃掉所有触摸事件

UIScrollView添加了一个单击手势识别器来显示/隐藏一些UI叠加使用:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[scrollView addGestureRecognizer:singleTap];
Run Code Online (Sandbox Code Playgroud)

和:

- (void)handleTap:(UITapGestureRecognizer *)sender {
    // report click to UI changer
}
Run Code Online (Sandbox Code Playgroud)

我在底部添加了一个简单的表格视图UIScrollView.一切正常(水平和垂直滚动)但问题是点击仅由手势识别器(上图)识别,而不是由简单的表格视图识别.如果我删除注册手势监听器的行,一切正常,表视图会通知自己.

这就好像手势识别器功能"吃掉"表视图上的点击事件并且不向下传播它们.

任何帮助表示赞赏

objective-c uiscrollview ios uitapgesturerecognizer

39
推荐指数
5
解决办法
5万
查看次数

RelativeLayout对齐父*边*+边*方*

RelativeLayout当你将视图与布局的一侧(任何一侧)对齐并且在同一方向上有一个大的边距时,我注意到了一种奇怪的行为.

我有2个RelativeLayouts,每个都包含一个简单的视图.在一个布局中,视图与顶部和左侧对齐,在另一个布局中与底部和右侧对齐:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout 
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginTop="110dp"
        android:layout_gravity="center"
        android:background="#ff555555" >

        <View
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:background="#aa8711" />     
    </RelativeLayout>

    <RelativeLayout 
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginBottom="110dp"
        android:layout_gravity="center"
        android:background="#ff555555" >

        <View
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:background="#998877" />         
     </RelativeLayout>      
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

基本设置

我在父对齐的每个方向上添加了130dp的边距.这意味着视图应该只在布局中部分可见.这是发生的事情:

每个对齐方向130dp

正如您所看到的,视图现在小于原始大小,因为它被推到了布局的"墙"上.接下来我试图给出一个比布局更大的边距,所以我在对齐的方向上给了它们151dp的边距.它看起来像这样:

在此输入图像描述

右下方对齐的视图现在"突破"布局,并且再次与原来的大小相同.另一方面,左上角对齐的视图也是原始大小,但完全在布局内部而不是在其外部.

我已经单独尝试了这个并且在每个排列的对齐中得到了相同的结果.

问题一:任何人都可以解释这种不一致的行为吗?

我尝试了同样的事情,这次将行为与a的行为进行比较FrameLayout.初始设置:

在此输入图像描述

并且在保证金之后:

在此输入图像描述

FrameLayout保持在所有时间的原始大小视图和简单地让视图"退出"了.我尝试在至少应该在视图之外的视图的大小的相反方向给出负边距,RelativeLayout并且看到与FrameLayout默认情况下发生的行为相同的行为.

问题2:任何人都可以解释行为上的差异和相反的负边际效应吗?

android android-layout android-relativelayout android-framelayout

19
推荐指数
1
解决办法
2579
查看次数

设置请求优先级排序

我正在尝试使用Android中的Volley库设置我的请求的优先级.我无法找到如何设置请求优先级.

StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener);
pe.requestQueue.add(request);
Run Code Online (Sandbox Code Playgroud)

有关如何做到这一点的任何想法?

java android android-volley

12
推荐指数
2
解决办法
7846
查看次数

使通知大图标圆

我想从用户的联系人中显示一个圆形化身作为通知的大图标 - 就像收到文本或邮件时一样.当我将大图标设置为该联系人的图像时,会生成一个方形图标.

我正在寻找看起来像顶部图标(方形头像)的东西,看起来像电子邮件通知上的大图标(圆形头像):

在此输入图像描述

我该怎么做?

android avatar android-notifications android-5.0-lollipop

12
推荐指数
3
解决办法
8344
查看次数

在某些设备中覆盖了ImageReader格式

我有一个ImageReader用于获取预览帧的数据(字节数组).它配置了推荐的图像格式,YUV_420_888如下所示:

mPreviewImageReader = ImageReader.newInstance(width,
            height, ImageFormat.YUV_420_888, 2);
Run Code Online (Sandbox Code Playgroud)

当我mPreviewImageReader.setOnImageAvailableListener();调用的监听器被调用时,我检索一个图像:

Image image = reader.acquireLatestImage();
Run Code Online (Sandbox Code Playgroud)

在某些手机中,我在日志中看到以下带有ImageReader_JNI标签的打印输出:

ImageReader_imageSetup:覆盖缓冲区格式YUV_420_888到32315659.

我搜索了,似乎格式被覆盖了YV12.我试着查看ImageReader的c ++代码并发现了这种情况:

int bufFmt = buffer->format;
if (imgReaderFmt == HAL_PIXEL_FORMAT_YCbCr_420_888) {
    bufFmt = buffer->flexFormat;
}
if (imgReaderFmt != bufFmt) {
    if (imgReaderFmt == HAL_PIXEL_FORMAT_YCbCr_420_888 && (bufFmt ==
            HAL_PIXEL_FORMAT_YCrCb_420_SP || bufFmt == HAL_PIXEL_FORMAT_YV12)) {
        // Special casing for when producer switches to a format compatible with flexible YUV
        // (HAL_PIXEL_FORMAT_YCbCr_420_888).
        ctx->setBufferFormat(bufFmt);
        ALOGD("%s: Overriding buffer format YUV_420_888 to …
Run Code Online (Sandbox Code Playgroud)

android android-camera2

7
推荐指数
0
解决办法
668
查看次数

Volley或ASyncTaskLoader

他们告诉我们应该使用ASyncTaskLoaders,因为他们非常善于阻止UI线程.现在有Volley使用.

我想我们不能同时使用它们,因为Volley自己做了背景.你怎么看?哪一个更好?

android asynctaskloader android-volley

6
推荐指数
1
解决办法
2318
查看次数

在 Android Studio 中安装 JavaScript 插件

我在 OS X 10.9 上运行 Android Studio 0.3.7 版。当我打开一个 JavaScript 文件时,我收到一个提示说:Plugin supporting files with *.js are found有 2 个选项:install pluginsignore plugins. 当我单击安装选项时,会Choose plugins to install or Enable弹出一个新窗口,但它是空的,并且只写了“无显示”。有没有人经历过这个?有没有办法手动搜索和安装这些 JavaScript 插件?

plugins android-studio

6
推荐指数
1
解决办法
1万
查看次数

如何在不访问私有变量的情况下测试jUnit测试中的时间传递?

我正在测试一个我需要一定时间才能通过的课程才能检查结果.具体来说,我需要x分钟才能通过才能判断测试是否有效.我已经读过在单元测试中我们应该测试接口而不是实现,所以我们不应该访问私有变量,但除了在我的单元测试中进行休眠之外,我不知道如何在不修改私有变量的情况下进行测试.

我的测试设置如下:

@Test
public void testClearSession() {
    final int timeout = 1;
    final String sessionId = "test";
    sessionMgr.setTimeout(timeout);
    try {
        sessionMgr.createSession(sessionId);
    } catch (Exception e) {
        e.printStackTrace();
    }
    DBSession session = sessionMgr.getSession(sessionId);
    sessionMgr.clearSessions();
    assertNotNull(sessionMgr.getSession(sessionId));
    Calendar accessTime = Calendar.getInstance();
    accessTime.add(Calendar.MINUTE, - timeout - 1);
    session.setAccessTime(accessTime.getTime()); // MODIFY PRIVATE VARIABLE VIA PROTECTED SETTER
    sessionMgr.clearSessions();
    assertNull(sessionMgr.getSession(sessionId));
}
Run Code Online (Sandbox Code Playgroud)

除了修改accessTime私有变量(通过创建setAccessTime setter或反射)或在单元测试中插入sleep之外,是否可以测试这个?

编辑2012年4月11日

我特意试图测试我的SessionManager对象在经过一段特定时间后清除会话.我连接的数据库将在一段固定的时间后丢弃连接.当我接近该超时时,SessionManager对象将通过调用数据库上的"finalize session"过程来清除会话,并从其内部列表中删除会话.

SessionManager对象旨在在单独的线程中运行.我正在测试的代码如下所示:

public synchronized void clearSessions() {
    log.debug("clearSessions()");
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MINUTE, - timeout);
    Iterator<Entry<String, DBSession>> entries = sessionList.entrySet().iterator();
    while (entries.hasNext()) …
Run Code Online (Sandbox Code Playgroud)

java tdd junit unit-testing

5
推荐指数
1
解决办法
2853
查看次数

AnimationDrawable自动启动

我有一个问题AnimationDrawable,我以编程方式创建,一旦我将其分配给一个ImageViewvia imageView.setBackgroundDrawable(我支持API 8)就开始.

这是我的代码的缩写:

 mSequence = new AnimationDrawable();
 ImageView imageView = new ImageView(context);
 ImageView.setAdjustViewBounds(false);
Run Code Online (Sandbox Code Playgroud)

我的所有资产都保存在本地,因此我将它们添加到 AnimationDrawable

for(String assetId : mAssets) {
    bitmap = loadBitmap(assetId); // returns a bitmap saved earlier
    if (bitmap != null) {
        mSequence.addFrame(new BitmapDrawable(res, bitmap), mFrameDuration);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后我将其分配AnimationDrawable给视图

if (mSequence.getNumberOfFrames() > 0) {
    imageView.setBackgroundDrawable(mSequence);
}
Run Code Online (Sandbox Code Playgroud)

现在,在我有机会调用该start()函数之前,动画会在ImageView加载后立即启动.

我希望能够根据我自己的逻辑控制动画的开始时间.

这发生在任何人身上吗?

**

编辑:

**

感谢Tom,我知道触发动画的原因是ImageView在分配后动态发生的可见性变化AnimationDrawable.在我的情况下解决方案并非微不足道,因为我有一个复杂的情况,但对于其他人,它可能更简单.

编辑2:

我根据类描述回到将drawable设置为背景,我引用:

创建逐帧动画的最简单方法是在XML文件中定义动画,放置在res/drawable /文件夹中,并将其设置为View对象的背景.然后,调用start()来运行动画.

animation android visibility imageview

5
推荐指数
1
解决办法
1791
查看次数