小编Mar*_*ist的帖子

如果在webview中存在触摸事件,则停止触摸事件被ViewPager拦截

我有一个ViewPager显示片段的页面.每个片段都是显示脱机网站的WebView.其中一些Web视图中包含javascript滑动事件以使其正常工作.

我想实现如果webview没有滑动事件(在javascript中),那么触摸事件被传递到ViewPager,如果不是它被webview消耗.

我试过覆盖ViewPagers

@Override
public boolean onInterceptTouchEvent(MotionEvent event)
{
    return (this.swipeable) ? super.onInterceptTouchEvent(event) : false;
}
Run Code Online (Sandbox Code Playgroud)

然而,这阻止了可ViewPager滑动(如预期),但也停止了滑动事件到达webview,所以我有两个不希望的结果.

是否有任何方法将触摸事件传递给webView然后如果它没有被消耗在片段中传递给ViewPager

万一我犯了错误,我MyViewPager有代码:

public class MyViewPager extends ViewPager implements   GestureDetector.OnGestureListener
{
private static final String TAG = MyViewPager.class.getSimpleName();
private boolean swipeable = true;
private float lastX   = 0;
private long lastTime = 0 ;
private GestureDetector mGestureDetector;
private boolean mScrolling = false;

public MyViewPager(Context context) {
    super(context);
    mGestureDetector = new GestureDetector(context, this);
}

public …
Run Code Online (Sandbox Code Playgroud)

javascript android webview android-fragments

15
推荐指数
1
解决办法
449
查看次数

OpenLayers 3:简单的LineString示例

我是OpenLayers的新手,我正在寻找一些帮助在地图上绘制线条,我一直在尝试从各种不同的帖子中绘制LineStrings的各种东西,但我无法让它工作!我只需要弄清楚如何在坐标之间画一条线.

继承了我试过但没有用的一些代码:

var points = [
    new ol.geom.Point([78.65, -32.65]),
    new ol.geom.Point([-98.65, 12.65])
  ];

var featureLine = new ol.Feature({
    geometry: new ol.geom.LineString(points)
  });

var sourceLine = new ol.source.Vector({
    features: [featureLine]
  });

var vectorLine = new ol.layer.Vector({
    source: sourceLine
  });

map.addLayer(vectorLine);
Run Code Online (Sandbox Code Playgroud)

我也试过这个但无济于事:

var layerLine = new ol.layer.Vector({
      source: new ol.source.Vector({
          features: [new ol.Feature({
              geometry: new ol.geom.LineString(points, 'XY'),
              name: 'Line'
          })]
      }),
  });

map.addLayer(vectorLine);
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?或者告诉我哪里出错了?

编辑:感谢Jonatas,工作代码如下所示:

  var coordinates = [[78.65, -32.65], [-98.65, 12.65]]; 

  var layerLines = new ol.layer.Vector({
      source: new ol.source.Vector({
          features: [new …
Run Code Online (Sandbox Code Playgroud)

javascript vector openlayers-3

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

Kotlin将Hex String解析为Long

我开始在Kotlin工作,我需要解析一个长的十六进制字符串,这在java中可以完成

Long.parseLong("ED05265A", 16); 
Run Code Online (Sandbox Code Playgroud)

虽然我能找到,但我在Kotlin找不到任何东西

val i = "2".toLong()
Run Code Online (Sandbox Code Playgroud)

这不是我要找的!

在我从头开始编写任何内容之前,是否有内置函数?

hex long-integer kotlin

9
推荐指数
2
解决办法
7691
查看次数

显示DialogFragment时保持沉浸式模式

我有一个使用Fragments制作的Android应用程序

我使用以下代码隐藏屏幕顶部和底部的条形图.

 @Override
protected void onResume() {
    super.onResume();
    isInBackground = false;

    if(null == getFragmentManager().findFragmentById(R.id.content_container))
    {
        getFragmentManager().beginTransaction().add(R.id.content_container,new PresenterFragment(), PresenterFragment.FRAG_TAG).commit();
    }

    if(Build.VERSION.SDK_INT >=19)
    {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        decorView.setSystemUiVisibility(uiOptions);
        decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
            @Override
            public void onSystemUiVisibilityChange(int visibility) {
                View decorView = getWindow().getDecorView();
                int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide …
Run Code Online (Sandbox Code Playgroud)

keyboard android android-dialogfragment android-immersive

8
推荐指数
2
解决办法
8286
查看次数

绘制时GLKView为空白

我正在尝试使用GLKView将图像放入UITableViewCell来绘制图像.

我在故事板中有一个原型单元,我有一个GLKView.它没有选中Enable setNeedsDisplay.

原型单元有一个名为PhotoTableViewCell的自定义类

import UIKit
import GLKit

class PhotoTableViewCell: UITableViewCell {

  var eaglContext:EAGLContext!
  var ciContext:CIContext!
  var myImage:CIImage!

  @IBOutlet weak var photoGlView: GLKView!
  @IBOutlet weak var timeLabel: UILabel!
  @IBOutlet weak var cameraLabel: UILabel!
  @IBOutlet weak var notesLabel: UILabel!

  override func layoutSubviews() {
     self.photoGlView.delegate = self
 }

}

 extension PhotoTableViewCell: GLKViewDelegate {
   override func draw(_ rect: CGRect) {
       let drawableRectSize = CGSize(width: 200, height: 200)// width:   photoGlView.drawableWidth, height: photoGlView.drawableHeight)

      let drawableRect = CGRect(origin: CGPoint.zero, size: drawableRectSize)
      print("rect ->\(drawableRect)")
      print("rect size -> …
Run Code Online (Sandbox Code Playgroud)

xcode uitableview eaglcontext ios glkview

7
推荐指数
1
解决办法
491
查看次数

升级到iOS8后,UITableView didSelectRowAtIndexPath无法正常工作

我有一个iOS应用程序,其中包含几个UITableViews,所有这些都按预期工作.我升级应用程序以处理iOS8

从那时起,我遇到了一个问题,即将自定义单元格加载到表格视图中,谁的笔尖在ib中选中了"使用自动布局"的框.然后我在我的自定义单元格中取消选中所有这些,从那时起,我所有UITableViews的单元格不仅不调用didSelectRowAtIndex路径方法,而且在触摸时不会突出显示.

我通过添加检查所有单元格是否处于活动状态

if(cell.userInteractionEnabled){NSLog(@"is enabled");}else{NSLog(@"is not enabled");}
Run Code Online (Sandbox Code Playgroud)

所有已加载的单元格写入"已启用"到日志中

我通过故事板中的ib设置委托和数据源,所有这些都在我更改"使用自动布局"并升级到iOS 8上运行之前有效.

我错过了什么?

这是我创建单元格的代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *CellIdentifier = @"TableCellWithNumberCellIdentifier";
    if( events.count>indexPath.row &&[[[events objectAtIndex:indexPath.row] objectForKey:@"tag"] integerValue] == -1)
    {
        EventsMonthSeparator *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil)
        {
            cell.translatesAutoresizingMaskIntoConstraints=NO;
            cell = (EventsMonthSeparator *)[EventsMonthSeparator cellFromNibNamed:@"EventsMonthSeparator"];
            cell.date.text=[[events objectAtIndex:indexPath.row] objectForKey:@"date"];
            [Functions setFontFamily:@"Neutra Display" forView:cell andSubView:YES];
            if(cell.userInteractionEnabled){NSLog(@"is enabled");}else{NSLog(@"is not enabled");}
        }
        return cell;
    }else
    {
        eventsRow *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil)
        {
            cell.translatesAutoresizingMaskIntoConstraints=NO;
            cell = (eventsRow …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview ios

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

使用pathinfo()时无法获取文件扩展名

我正在为照片网站构建上传器,大多数上传的照片的类型为1232132_1231231_12.jpg。当我运行pathinfo()时,得到扩展的空白输出。

这是我的代码

$target_dir = "Photos/";
$species =  filter_input(INPUT_POST, 'species');
$country =  filter_input(INPUT_POST, 'country');
$type= filter_input(INPUT_POST, 'type');
include_once 'connection.php';
echo $target_dir . basename($_FILES["file"]["name"]);
for($a=0;$a<count($_FILES['file']['tmp_name']);$a++)
{
$target_file = $target_dir . basename($_FILES["file"]["name"][$a]);
$imageFileType=pathinfo($target_file, PATHINFO_EXTENSION);
var_dump(pathinfo($target_file));

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" )
    {
       echo "<br> Sorry, only JPG, JPEG, PNG & GIF files are allowed. your file is a  $imageFileType <br>";
    } 
}
Run Code Online (Sandbox Code Playgroud)

照片/ 2014-02-21 18.19.08.jpg

 echo $target-file;
Run Code Online (Sandbox Code Playgroud)

给出此输出Photos / 2014-02-21 18.19.08.jpg

对于var_dump,它被回显到屏幕上,array(3){[“ dirname”] …

php

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

模拟的暂停功能在Mockito中返回null

我有一个使用Mockito模拟的暂停函数,但它返回null

两个项目都使用

'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0'
Run Code Online (Sandbox Code Playgroud)

例子1

这是我的测试中模拟返回null

@Test
fun `when gps not enabled observer is notified`() = runBlocking {
    // arrange
    `when`(suspendingLocationService.getCurrentLocation()).thenReturn(result) // <- when called this returns null

    // act
    presenter.onStartShopButtonClick()

    // assert
    verify(view).observer
    verify(observer).onPrepareShop()
}
Run Code Online (Sandbox Code Playgroud)

我的演示者中有以下实现

  override suspend fun onStartShopButtonClick() {
    val result = suspendingLocationService.getCurrentLocation() // <- in my test result is null!!!!!!
    view?.apply {
        observer?.onPrepareShop()
        when {
            result.hasGivenPermission == false -> observer?.onStartShop(StoreData(), APIError(APIError.ErrorType.NO_PERMISSION))
            result.hasGPSEnabled == false -> observer?.onStartShop(StoreData(), APIError(APIError.ErrorType.GPS_NOT_ENABLED))
            result.latitude != null && result.longitude != null ->
                storeLocationService.getCurrentStore(result.latitude, result.longitude) …
Run Code Online (Sandbox Code Playgroud)

junit mockito kotlin kotlinx.coroutines

5
推荐指数
2
解决办法
995
查看次数

Android 尝试使用资源未找到方法 close()

我正在使用 android ,它在 android 应用程序中MediaMetaDataRetriever实现。AutoCloseable我有下面的代码

\n
try (final MediaMetadataRetriever retriever = new MediaMetadataRetriever()) {\n    retriever.setDataSource(videoUri.getPath());\n    return retriever.getFrameAtTime(10, getFrameOption());\n}\n
Run Code Online (Sandbox Code Playgroud)\n

最小SDK > 21

\n

但我遇到了以下崩溃

\n

No virtual method close()V in class Landroid/media/MediaMetadataRetriever; or its super classes (declaration of \xe2\x80\x98android.media.MediaMetadataRetriever\xe2\x80\x99 appears in /system/framework/framework.jar

\n

如果MediaMetadataRetriever implements AutoCloseable

\n

java android try-with-resources

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

可以从其他类加入fmdatabaseQueues

我有一个应用程序,使用FMDatabase插入用户收集的数据和从Web下载的一些数据.由于对数据库的同时请求太多,我目前正在崩溃.

我想通过我的应用程序并将FMDatabaseQueue添加到我的所有数据库操作中,但是我需要一个队列用于整个应用程序,因为我有从Web下载数据并将其插入数据库的后台类,我必须访问数据库,以填充用户看到的UITableView.

所以我的问题是你可以制作一个在所有类中引用的静态FMDatabaseQueue吗?

我的第二个问题是我的查询目前的格式是否为;

 FMResultset *result=  [[databaseModel sharedInstance]executeQuery:@"SELECT * FROM TABLE1"];
if(![result next]){ 
       [[databaseModel sharedInstance]executeUpdate:@"UPDATE TABLE1 SET foo=bar where 1;"];
Run Code Online (Sandbox Code Playgroud)

这会变成吗?

[dbQueue inDatabase(FMdatabase db) ^{ //dbQueue is declared statically
    FMResultset *result=  [[databaseModel sharedInstance]executeQuery:@"SELECT * FROM TABLE1"];
    if(![result next]){ 
           [[databaseModel sharedInstance]executeUpdate:@"UPDATE TABLE1 SET foo=bar where 1;"];
    }
}];
Run Code Online (Sandbox Code Playgroud)

任何建议,指向进一步阅读或博客将非常感谢,谢谢提前标记

sqlite multithreading fmdb ios

2
推荐指数
1
解决办法
1325
查看次数

PDO没有约束占位符

我试图将我的登录脚本从mysql更改为PDO.对于我的其余部分,所有接缝都要远离这些部分,我只是不明白为什么.

我有以下代码

...
$pasword=md5($_POST['password']);
$email=$_POST['email'];

....

$query ="SELECT id FROM guests WHERE email=':eml' AND password =':pwd' AND lead_guest=17";
// $param2=array(':eml'=>$email,':pwd'=>$pasword);
$state=$dbh->prepare($query);
$state->bindParam(':eml',$email);
$state->bindParam(':pwd',$pasword);
$state->execute();
Run Code Online (Sandbox Code Playgroud)

在它的当前状态,它将返回行数0(它不应该),我也尝试过

  //$state->bindParam(':eml',$email);
  //$state->bindParam(':pwd',$pasword);
  $state->execute($param2);
Run Code Online (Sandbox Code Playgroud)

它还返回0的行数.

当它们出来时变量$email并且$pasword是正确的echo,并且脚本使用mysql_函数完美地工作.

$dbh变量是在头创建,并用$query ="select id where 1"它按预期工作.

我确信(虽然可能是错的)我将问题缩小到state->bindParam()脚本的一部分.我完全失去了为什么这部分剧本没有任何建议热烈欢迎.

php mysql pdo prepared-statement

2
推荐指数
1
解决办法
561
查看次数

未找到 Mockito 和 JUnit

我有一个非常古老的项目,它最初是一个 eclipse 项目,现在是 gradle/android studio

目前我只有一个存储在路径中的测试

src/test/java/

我有以下gradle文件

buildscript {
    ext.kotlin_version = '1.2.41'
    ext.latest_google_version = '27.1.1'
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
        maven { url 'https://dl.bintray.com/jetbrains/anko' }
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'io.fabric.tools:gradle:1.24.1'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'



kotlin {
    experimental {
        coroutines 'enable'
    }
}

repositories {
    maven { url "https://jitpack.io" }
    maven { url 'https://maven.fabric.io/public' }
    maven { url 'https://dl.bintray.com/jetbrains/anko' …
Run Code Online (Sandbox Code Playgroud)

junit android mockito kotlin

2
推荐指数
1
解决办法
1486
查看次数

无法将应用程序提交到应用程序商店xcode 5

我已经下载了Xcode 5预览版

我无法使用预览版本将我的应用程序提交到应用程序商店,如果我尝试收到一条消息,说应用程序商店不接受来自此版本的Xcode的应用程序.

如果我使用旧版本的Xcode(我认为是v4.5),那么它会出现一个错误,即使用更新版本的Xcode.

我试过卸载预览但没有成功,我做错了什么?

xcode app-store ios

0
推荐指数
1
解决办法
3605
查看次数