我的10dp高度按钮在哪里?

时间:2016-05-11 13:28:21

标签: android android-layout android-button

我已为3个设备编码如下(下图),并记录密度/分辨率/操作系统(以便您知道哪个设备是哪个)。我有5个按钮和5个图像,每个图像的高度从10dp到50dp。

您会注意到图像出现在所有设备上。所有按钮都出现在XXXHDPI设备(三星S7设备)上,但对于XXHDPI(Nexus 5)和XHDPI(三星S3),10dp按钮消失。为什么呢?

图片如下

Layout run on 3 devices

我的布局如下(没有其他特殊代码,只是默认的空活动项目)。

public void init() {
    this.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            if (url.contains("login")) {
                presenter.requestLogIn();
                return false;
            } else {
                urlStack.add(url);
            }

            Map<String, String> extraHeaders = new HashMap<>();
            extraHeaders.put("header", "header_info");

            loadUrl(url, extraHeaders);
            return true;
        }
    });

    getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
    getSettings().setJavaScriptEnabled(true);

}

private void addCookies(WebPresenter presenter) {
    if (presenter.createProperCookie(getContext()) != null) {
        List<HttpCookie> cookies = HttpCookie.parse(presenter.createProperCookie(getContext()));

        CookieManager cookieManager = CookieManager.getInstance();
        if (cookies != null) {
            for (HttpCookie cookie : cookies) {
                cookieManager.removeAllCookie();
                String cookieString = cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain();
                cookieManager.setCookie(cookie.getDomain(), cookieString);
            }
        }
    }
}

public void load(String url) {
    addCookies(presenter);
    loadUrl(url);
}

2 个答案:

答案 0 :(得分:0)

最好尝试为文本视图,按钮和图像提供单独的LinearLayout。对于LinearLayout使用android布局权重...希望它能正常工作

答案 1 :(得分:0)

&#34;问题&#34;在默认按钮背景及其内部填充。 修复 - 为按钮背景设置一些颜色

例如

android:background="@android:color/holo_red_dark"