Проблема LinearLayout [Android] - PullRequest
       1

Проблема LinearLayout [Android]

0 голосов
/ 07 ноября 2010

Хорошо, я принижаю себя. Это на самом деле сбивает меня с толку, потому что он хорошо отображается на эмуляторе, но не на моем телефоне

В эмуляторе пользовательский объект SurfaceView _map занимает весь экран, кроме текстового поля EditText внизу, прямо там, где и должно быть. Когда я запускаю тот же код, то же самое на моем Motorola Droid, EditText нигде не видно.

Я полагаю, что мне чего-то не хватает в моей реализации LinearLayout. До сих пор я легко научился пользоваться менеджером макетов другого API.

Вот код:

    _map = new Map(this);
    _chatText = new EditText(this);

    layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 1));
    layout.setGravity(Gravity.BOTTOM);
    layout.addView(_map, 0);
    layout.addView(_chatText, 1);

    setContentView(layout);

Выглядит так смиренно, что, честно говоря, я понятия не имею, почему он просто съедает мой EditText при запуске на реальном устройстве Android. И, к сожалению, я уже потратил много времени на то, чтобы он правильно отображался только в самом эмуляторе.

1 Ответ

1 голос
/ 07 ноября 2010

Да, разные телефоны будут давать разные результаты. И это, возможно, имело место для меня, поскольку у меня также есть мой телефон, разогнанный к разогнанному к 1.2 ГГц и имеющему пользовательский диск. В любом случае, решением этой небольшой проблемы было добавление весовой спецификации к представлениям, добавленным в макет.

LinearLayout.LayoutParams lpMap = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
    lpMap.weight = 0.15f; 

Затем я использовал следующую строку вместо того, что у меня было выше:

layout.addView(_map, 0, lpMap);

Надеюсь, это кому-нибудь поможет. Определенно запутанная ситуация, но иногда возиться это решение. Хотя я ответил на свой вопрос, большое спасибо сообществу в целом.

...