CardView и другие элементы не отображаются в моем XML-файле

Я использую AppCompatActivity и в данный момент пытаюсь добавить навигационный ящик на панель инструментов.

Проблема в том, что теперь карточка не отображается и навигационный ящик тоже не работает.

Это мой код:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="150dp">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/cards"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        card_view:cardCornerRadius="4dp">
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:padding="10dp"
            android:layout_alignParentBottom="true">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Username"
                android:id="@+id/usersName"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentEnd="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Others"
                android:id="@+id/others"
                android:layout_centerVertical="true"
                android:layout_alignParentStart="true" />

        </RelativeLayout>
    </android.support.v7.widget.CardView>
    <android.support.design.widget.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"></android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

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


person Community    schedule 21.03.2016    source источник


Ответы (2)


Вы пытаетесь втиснуть карточку 200dp в контейнер 150dp. Используйте match_parent для drawerlayout. Затем прямо из руководств для разработчиков:

Основное представление содержимого должно быть первым дочерним элементом в DrawerLayout, поскольку порядок XML подразумевает z-упорядочение, а ящик должен располагаться поверх содержимого.

Основное представление контента настроено так, чтобы соответствовать ширине и высоте родительского представления, поскольку оно представляет весь пользовательский интерфейс, когда панель навигации скрыта.

Дополнительную информацию см. в ресурсах для разработчиков

person deefunkt    schedule 21.03.2016

Попробуйте это решение, в нем есть android:layout_gravity="start" в NavigationView и CardView android:layout_height="match_parent", а также некоторые другие незначительные изменения.

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="150dp">

    <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/cards"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        card_view:cardCornerRadius="4dp">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:padding="15dp">

            <TextView
                android:id="@+id/usersName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:text="Username"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <TextView
                android:id="@+id/others"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="Others"
                android:textAppearance="?android:attr/textAppearanceMedium" />

        </RelativeLayout>
    </android.support.v7.widget.CardView>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:fitsSystemWindows="true">

    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
person Amit Vaghela    schedule 21.03.2016
comment
действительно очень полезный комментарий. я отредактировал свой ответ. @MikeM. - person Amit Vaghela; 21.03.2016