嘿,我有一个从屏幕顶部到屏幕底部之前的滚动视图,因为这是我的广告横幅发生的地方.由于谷歌政策,我想在这些元素之间(按钮和横幅之间)有一些像素.到目前为止,我在dp中设置了一个值.但是,由于设备不同,这导致广告与某些高分辨率手机上的滚动视图之间存在巨大差距.这就是为什么我要设置
<ScrollView 
android:layout_height="(Screen_height-banner)-5px"
(当然我甚至没有以这种方式尝试,因为这不是代码,但我认为它总结得很好我计划做什么)
非常感谢你的回答!
嘿,我有一个带有Watch Extension的iOS应用程序.启动Apple Watch应用程序时,它会启动iPhone应用程序并通过sendMessage每隔几秒钟发送一次呼叫来保持活动状态.然后iPhone应用程序导航到WKWebView中的网站,每隔几秒检查一次内容,然后将一些数据发送到Apple Watch以便在那里显示.
在Apple Watch上显示不断更新的内容非常正常,我在iPhone上获取数据:
self.webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",
                                   completionHandler: { (html: Any?, error: Error?) 
. . . //splitting html content into TFHppleElements
self.contentArray.add((element.search(withXPathQuery: "//div[contains(@class, 'article-title')]")[0] as AnyObject).content)
我每5秒跑一次.一旦article-title更改中的文本,我的手表上就会显示更改.作品.
这些元素都包含类似的内容,style="z-index: 206; height: ...并且我通过抓取属性然后将其向下细分来成功解析它.
let styleContainer = element.attributes["style"] as! String
var firstHalf = styleContainer.components(separatedBy: "; height:")
...
我使用z-index值对Apple Watch上的表行进行排序,但在1-3次更新后,所有元素的z-index都停止更新.内容(如文章标题)仍在更新,所以数据流肯定有效,但我想知道为什么z-index'保持不变.起初我认为这是我的排序或转移到Apple Watch时的一个问题,但我无法确定这个问题 - 当我在iPhone上运行应用程序时,它总是得到正确的索引,但是当我跑该应用程序通过在手表上启动它,出现上述问题.
经过几天的数据结构混乱(仍然认为错误在我身边)它终于打动了我:当应用程序在后台启动时,页面上的z-index本身没有得到更新.我通过在我的手表上启动应用程序并像往常一样得到错误的z-index来检查这一点但是我保持Watch应用程序打开并在iPhone上启动应用程序 - 我看到WKWebView根据他们的z更新元素的顺序-index然后我突然得到了每个元素的正确z-index,即使在按下主页按钮之后也是如此.这解释了很多,但仍然无法帮助我解决问题.
我如何欺骗WKWebView让JS在后台运行时更新所有元素z-index?我觉得奇怪的是,在短时间内打开iPhone应用程序后不会出现此问题,但我不能要求我的用户每次想要访问Watch应用程序时打开并"最小化"应用程序Watch应用程序的目的是将手机放在口袋里.
通过sendMessage调用viewDidLoad 激活iPhone应用程序,因此我可以指出在手动启动应用程序和通过Watch执行此操作之间的真正区别.Javascript本身也可以在后台运行,那么除了z-index属性之外,为什么一切都会更新?防止运行背景的"图形"更新在保持电池寿命方面是可以理解的,但也不是文本"图形"吗?如果它是手动启动的话,为什么家用按钮应用会有所不同呢?
 删除因为下面只发生一次,很奇怪.
编辑:好的,所以实际上索引值会发生变化,但每当一篇文章被推到顶部时,它会转到与任何文章的最高值相同的值而不更新其他文章的值.例:
Before:
A1: 26
A2: 27
A3: 28
A4: 29
After pushing …今天我意识到"Get it on Google Play"徽章(https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)的旧链接不再有效(Android开发者,更新您的网站!)我在这里检查了新版本:https://play.google.com/intl/en_us/badges/
我相应地改变了我的代码
   . . . src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge-border.png" height="45" />
但是,它现在不再与App Store图标对齐.谷歌图标现在大约是37px,而App Store图标就像我设置的那样,高度为45px.
看起来白色边框周围的填充物被"硬编码"到图片中.检查我附加的图片的尺寸.
为什么Google必须再次改变一切?另外,为什么它不能像以前一样工作?我是否真的需要将它放在55px高度以使其看起来像 45px?这听起来像是糟糕的代码.
在 WebView 中的 Soundcloud iframe 中,我想执行以下 js: (document.getElementsByClassName('mobilePrestitial__link')[0]).click()
在 iOS 中,我通过设置实现了这一点forMainFrameOnly: false,但是我似乎无法在 Android 上找到此设置。我该怎么做才能在所有帧上执行上述 js 以便点击通过?
这就是我现在正在尝试的方式,但它不起作用。
webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            String javascript = "javascript:(document.getElementsByClassName('mobilePrestitial__link')[0]).click()\n" +
                    "setTimeout(function() {\n" +
                    "(document.getElementsByClassName('mobilePrestitial__link')[0]).click()\n" +
                    "}, 5000);";
            view.loadUrl(javascript);
        }
    });
更新:如果其他人在完全相同的网站上遇到这个问题,即 Soundcloud:如果您升级频道,他们会为您提供一个无弹出框。也许这适合您的用例,这就是我最终采用的方法。
我知道如何LayoutParams通过执行以下操作来设置视图的宽度和高度:
android.view.ViewGroup.LayoutParams params = button.getLayoutParams();
params.width = height/7;
params.height = height/10;
button.setLayoutParams(params);
现在,只要我想将相同的高度和宽度应用到另一个按钮,我需要创建另一个LayoutParams或覆盖现有的一个,如下所示:
android.view.ViewGroup.LayoutParams params2 = but2.getLayoutParams();
params2.width = height/7;
params2.height = height/10;
but2.setLayoutParams(params2);
我的应用程序中有大约50个按钮,我怀疑为了只改变宽度和高度而得到所有Params被认为是好的代码 - 我想保留剩余的参数(toLeftOf,[...]).
有没有办法只改变参数的宽度和高度,但保留其余的参数?所以它看起来像是这样的:
android.view.ViewGroup.LayoutParams params = button.getLayoutParams();
params.width = height/7;
params.height = height/10;
button.setLayoutParams(params);
button2.setLayoutParams(params);
button3.setLayoutParams(params);
butt[...]
非常感谢提前.
据我所知,这10 years是在 Eclipse 中创建密钥库时的默认设置。我认为,大约 5 年前,Android 开发成为主流,因此我预计 5 年后,Play 商店中的许多应用程序将无法更新。
到目前为止,我还没有找到关于如何“延长”证书生命周期的解决方案。有吗?Google 会实施一种方法来使用新证书设置您的应用吗?当然,我的场景不会影响太多的应用程序,但我认为在 3-5 年内会有相当多的 SO 问题。
有任何想法吗?
我正在尝试在 WatchKit 中实现登录方案(这里不应该关心用户是否在手表中输入数据),这意味着登录后,用户应该看到一个不允许他查看的视图返回登录屏幕(<左上角没有)
如果用户被踢出会话(例如,未支付订阅费用时),我希望应用程序返回到登录屏幕。
从登录屏幕重定向到主屏幕可以正常使用
DispatchQueue.main.async() { [weak self] in
                    WKInterfaceController.reloadRootControllers(
                        withNames: ["mainController"], contexts: [values]
                    )
                }
但是当我尝试在主控制器中使用相同的方法时
DispatchQueue.main.async() { [weak self] in
                    WKInterfaceController.reloadRootControllers(
                        withNames: ["loginController"], contexts: [message]
                )
}
登录屏幕显示,但主屏幕中的视图控制器保持活动状态,不断接收来自其他对象的通知并不断生成新的登录控制器。我已经尝试过了
    self?.pop()
    self?.dismiss()
    self?.popToRootController()
    self?.presentController(withName: 
这些似乎都没有停用主控制器。在这种情况下我能做什么?
我不需要主控制器中的任何内容,因为我将在成功登录后创建一个新控制器,那么如何确保完全销毁该对象?我不想处理 mainController 中的所有引用、侦听器、计时器……这就是为什么我完全可以销毁它。
在昨天的 WWDC 上,Apple 宣布了 watchOS 5 中的 WebKit 支持。我已经下载了 Xcode 10,但在 Interface Builder 或 Frameworks and Libraries 选项卡中找不到任何参考。虽然WebKit昨天苹果的网站已经无法访问,但他们还没有添加关于 watchOS 的文档。
如何使用 WebKit 和 WatchKit?
我的应用程序中有一些警告声但我真的需要背景音乐(例如Spotify)来继续在后台运行.我解决了这个问题
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
但是,在静音模式下,我AVAudioPlayer的声音很小,但即使在静音模式下,声音也很重要.我读过AudioServicesPlaySystemSound忽略静音模式,但它没有,至少在iOS9上没有.
还有其他可能吗?哦,请浪费你的时间说"我会讨厌这个用户","不称它为静音模式",......这是一个编程页面,而不是哲学类.
嘿,我有点让 Pyreverse 工作了,它现在显示我的类,但它并没有在类之间建立联系。
在一节课上我得到了
class webserver:
    print('stuff')
    getcaller1 = getcaller.GetCaller()
    device_dict = getcaller1.abc(m)
另一个包含
class GetCaller():
    def __init__():
        print('init')
    def abc(self, m):
        devices=get(m)
然而,我在classes.png中得到的只是这个(类之间没有线条或箭头)

该代码有效,如果我在 pip 安装的模块上运行pyreverse 内容,pyreverse 确实会打印这些箭头,但我自己的项目中一定缺少一些东西。Python 类还可以有哪些其他类型的关系?