小编ozb*_*bek的帖子

软键盘打开时获取视口高度

我一直试图让这项工作好几天,没有运气,所以我想我会分享信息,也许有人想出一个解决方案.

我想在软键盘启动时获得确切的视口大小.我目前在标题上使用以下代码,以便网站响应:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
Run Code Online (Sandbox Code Playgroud)

我意识到当软键盘出现时,它使用设备高度作为视口高度并向上推动站点的其余部分 - 这使我认为它从width = device-width选项获得它的高度.

启动软键盘后使用以下代码:

setTimeout(function() {  
    viewport = document.querySelector("meta[name=viewport]");
    viewport.setAttribute('content', 'height=auto');
}, 300)
Run Code Online (Sandbox Code Playgroud)

然后使用jquery获取高度在Android上显示CORRECT结果 - 也就是可见的视口大小,没有虚拟键盘,但在iOS上没有.我得到一个随机数,我假设源于其余的元标记不存在,所以我得到了网站的放大版本以及75或100之类的数字(在iphone 4s上)

我也尝试在键盘上升后创建一个固定元素,使其使用top:0的视口高度; 和底部:0; 属性,但我仍然得到原始的高度.

更接近这一点的是将视口元标记高度设置为固定值,可以通过jquery获取$(window).height(),这意味着元标记在启动键盘后实际上有所不同,但是对于固定的没有真正的价值高度.

我已经看到很多关于此的主题,但没有一个解决方案.有解决方案吗?

css jquery viewport ios

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

在奥利奥布尔com.android.server.autofill.RemoteFillService $ PendingRequest.cancel()上的空指针异常

我遇到了崩溃问题我们面临的一个空指针异常仅与奥利奥的自动填充相关.下面是堆栈跟踪

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean com.android.server.autofill.RemoteFillService$PendingRequest.cancel()' on a null object reference
  at android.os.Parcel.readException(Parcel.java:1965)
  at android.os.Parcel.readException(Parcel.java:1905)
  at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras(IActivityManager.java:8297)
  at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3210)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
  at android.os.Handler.dispatchMessage(Handler.java:105)
  at android.os.Looper.loop(Looper.java:164)
  at android.app.ActivityThread.main(ActivityThread.java:6944)
  at java.lang.reflect.Method.invoke(Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Caused by android.os.RemoteException: Remote stack trace:
  at com.android.server.autofill.RemoteFillService.cancelCurrentRequest(RemoteFillService.java:177)
  at com.android.server.autofill.Session.cancelCurrentRequestLocked(Session.java:465)
  at com.android.server.autofill.Session.access$1000(Session.java:118)
  at com.android.server.autofill.Session$1.onHandleAssistData(Session.java:322)
  at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:14713)
Run Code Online (Sandbox Code Playgroud)

这并没有说明为什么会发生这种情况的确切原因.

android autofill nullpointerexception

22
推荐指数
1
解决办法
1200
查看次数

直接从浏览器(或从应用程序)发送链接到whatsapp组

我想让用户与WhatsApp小组共享URL +文本.我希望这可以从iPhone和Androids工作.但是我的应用程序是在浏览器中(它是一个网站).我目前正在研究两种选择,但两者都存在问题:

1)第一个潜在的解决方案 - 直接从浏览器共享.

我检查了WhatsApp的URL架构并使用以下URL通过我的应用程序共享:

"whatsapp://send?text=Hello%2C%20World!" 
Run Code Online (Sandbox Code Playgroud)

但是这种方法存在一些问题:

  • 它似乎只适用于iPhone而不适用于Androids.Androids是否有适合的解决方案?
  • 只有在您被重定向到WhatsApp之后,它才能选择发送给谁,除非您知道用户的地址簿ID(= abid).首先,我不知道如何访问用户的abid?其次,我试图发送给一个小组,在这种情况下没有abid(对吗?),因此似乎不可能这样做.真的吗?此外,Android应用程序会发生什么?对于一群人来说,与abid相比有什么可比性,我该如何得到它?

2)第二个潜在的解决方案 - 创建一个与基于浏览器的应用程序完全相同的本机应用程序,但是这个特定部分(我们执行"共享")是原生的.

但是,在我看来,在这种情况下,我遇到的问题与上述问题非常相似:

  • 我可以在WhatsApp的网站上看到如何为iOS做这个(见上面的链接).但是,WhatsApp URL架构是否也适用于Android原生应用程序?
  • 同样,地址簿ID问题也是一样的.我怎么得到它?鉴于我们现在是一个原生应用程序,它可能更容易获得iOS上的abid,但它是否存在于一个组中?Android应用程序怎么样?这份分享给WhatsApp小组在那里工作吗?

iphone android url-scheme ios whatsapp

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

有背景颜色和透明文本的按钮

我有一个背景图像的布局,并有一个按钮.按钮的背景颜色是白色.现在我想在其上写一个文本,使文本显示按钮后面的任何内容(如透明文本).现在,显然,如果我使文本颜色透明,文本将消失,我将看到一个没有文本的白色按钮.这该怎么做?

截图:

带有透明文本的按钮

android

21
推荐指数
1
解决办法
2928
查看次数

Android WebView HTML能否影响键盘或键盘功能?

我有一个带有信用卡输入表格的webview(带有标准<input type="text" />字段).在不同版本的Android中,我会得到不同的键盘.Kit-Kat似乎在表单内部不显示Prev/ Next键.

  1. 在网络方面,我对此有任何影响吗?
  2. 如果没有,我应该向Android方面的开发者推荐什么?

没有Prev/的示例Next:

相同的webview,带Prev/ Next:

在此输入图像描述

android android-ui android-webview android-softkeyboard

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

Android Studio - Android设备监视器 - 空视图

我试图在Android Studio中使用Android设备监视器,但不知怎的,我设法删除所有视图.

我已经尝试重置透视图,Window-> Show View - >(Any View),甚至重新安装Android Studio但没有显示任何内容.

Android设备监视器

有谁知道如何将设备监视器重置为其默认视图?(左侧是设备,右侧是堆/线程/分配视图.)

谢谢你的帮助!

android ddms android-studio

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

"你在上午会议中"是什么意思?

当我跑步时git status,这就是我所看到的:

$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

You are in the middle of an am session.
  (fix conflicts and then run "git am --continue")
  (use "git am --skip" to skip this patch)
  (use "git am --abort" to restore the original branch)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- …
Run Code Online (Sandbox Code Playgroud)

git gerrit

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

在显示状态栏通知之前处理状态栏通知

NotificationListenerService用来处理设备通知:

@Override
public void onNotificationPosted(StatusBarNotification sbn) {

    Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t"
            + sbn.getNotification().tickerText + "\t" + sbn.getPackageName());
 }
Run Code Online (Sandbox Code Playgroud)

onNotificationPosted()在设备上发布通知后调用该方法.有没有办法在呈现之前捕获它?

我看到也可以使用AccessibilityManager实现阅读通知, 但在弹出通知后再次阅读.

有没有办法延迟设备通知弹出窗口,直到某个时刻?

我知道我可以使用NotificationListenerService它来删除通知(在它弹出给用户之后)并保存并稍后尝试重新启动它.但是我遇到了重新启动的问题,并且在状态栏通知已经显示之后再次发生这种情况.

android android-notifications

11
推荐指数
1
解决办法
894
查看次数

proguard-rules.pro文件中的FileNotFoundException

我正在使用Android Studio v.1.0我的构建文件:

  buildTypes {

    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试发布版本时,我收到一个错误:错误:任务':app:proguardRelease'的执行失败.

java.io.FileNotFoundException:F:....\app\proguard-rules.pro(找不到文件)

我想,proguard-android.txt是Android SDK的一部分,对吗?

为什么Android Studio找不到它?

我也试过proguard-android.pro - 结果相同

java android proguard

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

语音录制时,语音识别无法正常工作

我正在开发一个功能,当按下按钮时,它将启动语音识别,同时记录用户说的内容.代码如下:

    button_start.setOnTouchListener( new View.OnTouchListener() 
    {
        @Override
        public boolean onTouch(View arg0, MotionEvent event) 
        {   
                if (pressed == false)
                {
                    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);        
                    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                    intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
                    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");
                    intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1); 
                    sr.startListening(intent);
                    Log.i("111111","11111111");
                    pressed = true;
                }

                recordAudio();

            }

            if((event.getAction()==MotionEvent.ACTION_UP || event.getAction()==MotionEvent.ACTION_CANCEL))
            {                   
                stopRecording();
            }
            return false;
        }
    });             
}

   public void recordAudio()
   {
      isRecording = true;   
      try 
      {
          mediaRecorder = new MediaRecorder();
          mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
          mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
          mediaRecorder.setOutputFile(audioFilePath);
          mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
          mediaRecorder.prepare();
      } 
      catch (Exception e) 
      {
          e.printStackTrace();
      }
      mediaRecorder.start();            
   }    

   public void stopRecording()
   {            
       if (isRecording) …
Run Code Online (Sandbox Code Playgroud)

android voice-recording voice-recognition mediarecorder

8
推荐指数
1
解决办法
1937
查看次数