Android: добавление кнопки в пользовательскую строку заголовка - PullRequest
4 голосов
/ 15 апреля 2011

Я создал собственную строку заголовка, как показано в этом примере

http://staticallytyped.wordpress.com/2011/03/18/android-dynamic-and-custom-title-bars/

«Пользовательская строка заголовка» - на полпути вниз.

На некоторых мероприятиях я бы хотел разместить кнопку справа от заголовка (как в приложении Facebook). Я попытался добавить кнопку в представление следующим образом, но оно не отображается.

Пользовательская строка заголовка отображается следующим образом

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);<br> setContentView(R.layout.maintabhost); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.headerbar_include);

Попытка добавить кнопку следующим образом. Кнопка будет в конечном итоге ImageButton и выровнена по правому краю пользовательского заголовка, если я получу его работающим. (только что понял, что у меня слишком много макетов, но это не влияет на отображение кнопок)

    LinearLayout layout = (LinearLayout) findViewById(R.id.headerbar);
    Button searchButton = new Button(this);
    searchButton.setText("info");

    LayoutParams layoutParams = new LinearLayout.LayoutParams
    (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    searchButton.setLayoutParams(new LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));

    layout.addView(searchButton, layoutParams);
    layout.invalidate();

Я мог бы просто создать другую пользовательскую заголовок с уже встроенной кнопкой, но динамическое решение было бы лучше.

Приветствия

Ответы [ 2 ]

8 голосов
/ 27 апреля 2011

Прежде всего, спасибо за ссылку на мой блог.Во-вторых, дай мне посмотреть, не могу ли я ответить за тебя.Одна из причин, по которой у вас возникают проблемы с добавлением еще одной кнопки, когда вы хотите добавить кнопку, заключается в том, что в этом примере я не оставил вам способа получить представление строки заголовка по обычным каналам.Поэтому давайте исправим это (и, возможно, я позволю мне написать еще одну запись в блоге в ближайшие выходные.)

Начиная с файла xml, добавьте атрибут id:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:id="@+id/title_complex">
    <!-- Stuff -->
</LinearLayout>

и вот код, который нужно показатьВы знаете, как добавить эту кнопку в свою активность (вам нужно будет добавить весь талант позже):

LinearLayout layout = (LinearLayout) getWindow().findViewById(R.id.title_complex);
layout.addView(new Button(this));

, и если вы посмотрите, в строке заголовка есть неописуемая кнопка(как я уже сказал, вам придется добавить свой собственный талант):

Title Bar with another button

Однако следует помнить, что я не могу гарантировать, что кнопка останется или выиграет »оставаться на последующих мероприятиях.Я еще не исследовал это, но это должно начать вас.И если у вас есть еще вопросы, не стесняйтесь задавать их здесь (больше глазных яблок) или в моем блоге.

0 голосов
/ 03 августа 2011

Вот один способ убедиться, что кнопка (и) остаются в строке заголовка:

Как создать заголовок пользовательского окна в Android

По сути, оберните класс Activity для Android, а затем расширьте этот новый класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...