Как разместить заголовок панели инструментов в верхней части меню - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь выяснить, как разместить заголовок панели инструментов в верхней части меню, но я ничего не могу найти в Интернете.

В основном я хочу иметь ту же панель инструментов, что и карты Google на этот скриншот внизу: их приложение но на данный момент у меня есть только это: мое приложение

Вот как я могу добавить меню на панели инструментов

    toolbar = this.findViewById(R.id.toolbar);
    toolbar.inflateMenu(R.menu.a_menu);
    toolbar.setTitle("Title");

Вот XML для моей панели инструментов

    <androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="156dp"
    android:layout_gravity="bottom"
    android:layout_margin="5dp"
    android:animateLayoutChanges="true"
    android:background="#fff"
    android:elevation="8dp"
    android:gravity="top|left"

    ></androidx.appcompat.widget.Toolbar>

1 Ответ

0 голосов
/ 12 января 2020

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

и добавить меню в определенном месте в Toolbar, вы можете использовать ActionMenuView и программно добавлять меню в onCreateOptionsMenu() обратный вызов активности, а также обрабатывать щелчки меню с помощью onOptionsItemSelected

MainActivity

public class MainActivity extends AppCompatActivity {

    private ActionMenuView mMenuView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Inflating ActionMenuView
        mMenuView = findViewById(R.id.menu_view);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Adding menu to the ActionMenuView
        getMenuInflater().inflate(R.menu.a_menu, mMenuView.getMenu());
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        // handle menu clicks
        return super.onOptionsItemSelected(item);
    }

}

Ваша панель инструментов

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="156dp"
    android:layout_alignParentBottom="true"
    android:layout_gravity="bottom"
    android:layout_margin="5dp"
    android:animateLayoutChanges="true"
    android:background="#fff"
    android:elevation="8dp"
    android:gravity="top">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/toolbar_title"
            style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="16dp"
            android:text="3 E Main Street" />

        <androidx.appcompat.widget.ActionMenuView
            android:id="@+id/menu_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

</androidx.appcompat.widget.Toolbar>

Как это выглядит

enter image description here

...