小编Jon*_*Jon的帖子

WebView返回错误的window.innerHeight

我有一个使用Android WebView的应用程序,以及一些JavaScript.当我的WebViewClient调用时onPageFinished(),我会提醒我的JavaScript运行初始化方法.在我点击之前启用并加载了我的JavaScript onPageFinished().

在我使用的JavaScript方法中window.innerWidth.但是,它返回的值总是错误的并且总是相同的.不管我的方向它报告的内部宽度为320,内部高度为240(纵向和横向正确的宽度值分别为360和598).在别的地方我访问window.innerWidthwindow.innerHeight在JavaScript它给了我一个准确的数字.

更令人费解的是,如果我直接在我的onPageFinished()通话中检查WebView的高度或宽度

int height = view.getHeight();

int width = view.getWidth();

然后它总是正确返回(虽然它返回确切的像素数,而不是DIP).这让我觉得一切都已经完成了WebView的加载,因此我的JavaScript不应该有任何问题.

关于发生了什么的任何想法?

提前致谢!

javascript android android-webview

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

getElementById()是否有效?

我经常getElementById("id1");在我的方法中使用该方法.我用它来查找HTML中的某些元素.我想知道如果每次都必须搜索整个DOM,我是否需要关注我使用它的程度.

这种方法有什么用?它是解析DOM并在找到它时返回元素,还是以某种方式将所有这些值编入索引,因此能够更快地返回?

PS我一般对这个方法感到好奇,但如果有任何不同,我会使用Android WebView.

html javascript dom android-webview

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

如何在HTML中找到行之间的空格?

这是我前一个问题的后续问题.我试图找到一种方法来找到元素中每行文本的确切位置.

我能够找到css lineHeight属性(参见上一个答案).问题是我的元素的高度略大于行数乘以的累积高度lineHeight.

一个例子:

我有一个<p>是2010px高个子没有填充,边框或保证金,( ,scrollHeight,offsetHeightclientHeight所有报告相同),并在浏览器中89线.所述lineHeightcomputedStyle()是22.

2010/22 = 91.37行

对于小元素,我可以对值进行平移以获得正确的行数,但是遇到上面的问题时,更大的元素我无法准确地获得确切的行数.

我的假设是,我没有考虑到这些文本行之间有一些小的空间.知道如何找到它吗?它与字体类型有关吗?它是由浏览器自动设置的吗?任何文档都会特别有用.

谢谢!!

更新:

所以我有26个上标<p>,每个上标2px,扩展到lineHeight它们看起来是24px的那些线,这是我缺少的空间.(Woot!到目前为止!)

我想我现在所处的船是我需要找到一种方法来动态计算它们在线的正常顶部之上突出多少,或者发现a的基线<sup>高于正常基线的高度.(反之亦然<sub>.)否则,我可以用CSS确定吗?

html javascript css android-webview

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

Python 需求与 PyPi 冲突

我有一个项目需要一些 DevOps TLC,所以我终于构建了我的安装脚本。这最终将是一个可以通过 pip 在本地安装的包,但可能不会在 PyPI 中结束。

它依赖于一个名为u2py. 正是这个包,为 U2 数据库操作创建的,而不是这个包,为了……别的东西。我想要的只有第 3 方供应商 (Rocket) 才安装,我不想要的是 PyPI。

在这种情况下,我的包的预期行为应该是什么?我将在我的自述文件中包含一个关于此的简介,但这是否足够?

我曾想过抛出异常来确定何时存在错误的包,但这让我觉得很奇怪。似乎最pythonic的事情是不要将它添加到我的安装脚本中,并盲目地假设import u2py我可以使用的模块的结果。如果它像鸭子一样嘎嘎叫,像鸭子一样解析DynArrays,像鸭子一样call()s SUBROUTINE,那么它就是一只鸭子,对吧?否则,如果出现错误,用户只会去实际阅读文档。

我看过一个classifiers,但不确定它们是否适用于此。

python pip pypi setup.py u2

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

为什么只有一些CSS边距崩溃?

我一直在运行一些测试,以找出为什么有些CSS边缘会崩溃以及为什么有些没有.我有以下测试代码:

<div id="seconddiv" style="margin-top:10px; margin-bottom:10px;">
    <p style="height:200px; margin-top:5px; margin-bottom:5px;">This is the first paragraph in  the second div!This paragraph is 200px tall.</p>
    <p style="height:300px; margin-top:5px; margin-bottom:5px;">This is the second paragraph in the second div!This paragraph is 300 px tall.</p>
    <p style="height:400px; margin-top:5px; margin-bottom:5px;">This is the third paragraph in the second div!This paragraph is 400px tall.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图准确地获得div的高度,但scrollHeight返回"910px".这是为什么?我期望"900px"作为scrollHeight,因为它不包括边距.

一些<p>边缘是否崩溃并计入高度?为什么有些人而不是其他人 我尝试了许多不同的边距高度组合,没有任何数据显示正在发生的事情.

html css margins android-webview

3
推荐指数
1
解决办法
1075
查看次数

onSharedPreferenceChanged()从未调用过

我最近将HoloEverywhereGitHub中的库导入Eclpse,并开始在已经运行的应用程序中使用它.总的来说,我对图书馆很满意,事情进展顺利.

我试图用org.holoeverywhere.preference.PreferenceActivity我的旧代替PreferenceActivity.UI看起来应该如此,但我注意到onSharedPreferenceChanged()永远不再被调用.我究竟做错了什么?

AFAIK我按预期使用该库.我几乎没有改变从旧版本到新版本的任何东西HoloEverywhere.虽然有很多关于SO的相关问题,但我找不到能解决我问题的任何问题.

相关代码发布如下:

import org.holoeverywhere.LayoutInflater;
import org.holoeverywhere.preference.Preference;
import org.holoeverywhere.preference.PreferenceFragment;
import org.holoeverywhere.preference.PreferenceManager;
import org.holoeverywhere.preference.PreferenceScreen;
import org.holoeverywhere.preference.SharedPreferences;
import org.holoeverywhere.preference.SharedPreferences.Editor;
import org.holoeverywhere.preference.SharedPreferences.OnSharedPreferenceChangeListener;


public class SettingsActivity extends org.holoeverywhere.preference.PreferenceActivity implements SyncManager.SyncProgressListener, SharedPreferences.OnSharedPreferenceChangeListener
{
private static SharedPreferences prefs;

@Override
public void onCreate(Bundle savedInstanceState)
    {
    prefs = PreferenceManager.getDefaultSharedPreferences( this );
    }

public void onSharedPreferenceChanged(SharedPreferences prefs, String key)
    {
    // do some really important stuff here
    }

public static class DisplaySetttingsFragment extends PreferenceFragment
    {
    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-preferences sharedpreferences android-holo-everywhere

3
推荐指数
1
解决办法
5455
查看次数

我如何有条件地锁定Java?

我一直在利用Java的synchronized块来使代码线程的一部分安全.我正在将数据结构移植到通常可以使用synchronized块的java ,但我并不总是知道如何以典型的Java方式使用它们.

以下是一个场景的示例:

myMethod (Bool useLock)
    {
    if (useLock)
        {
        //locks the following section of code until unlocked.
        lockObject.lock();
        }

     //do more stuff....

    if (useLock)
        {
        //unlocks exclusive control of code.
        lockObject.unlock();
        }
     }
Run Code Online (Sandbox Code Playgroud)

我如何在Java中完成相同的操作?在这段代码中,有时我想要锁定,有时我不想,但我想要聪明一点,而不必编写相同代码的两个版本.除了使用synchronized块之外,还有其他方法可以锁定Java 吗?

java locking synchronized

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

捕获滑动以关闭ViewPager中的listview手势

我有一个ListView抓取滑动手势删除一行.这ListView住在一个Fragment.在手机上,这是它自己的,Activity并且工作得很好.在平板电脑上,这Fragment是一个,ViewPager并且ListView永远不能捕获任何滑动事件,因为他们总是去ViewPager.

我将如何确保ListView在传递到消息之前消费者捕获滑动手势ViewPager

PS我正在使用这个库来轻扫我的手势ListView

android android-listview android-fragments swipe-gesture android-viewpager

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