Представления в NavigationView не отображаются / не отображаются

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

Основная деятельность

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/Drawer"
tools:context="com.example.minhasoft_pc.drawer.MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="4"
    android:orientation="vertical">

    <ImageView
        android:layout_margin="10dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher_round"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:layout_margin="5dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher_round"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:layout_margin="10dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher_round"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />



</LinearLayout>


<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:layout_marginEnd="-65dp"
    android:layout_marginRight="-65dp"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <include layout="@layout/drawer_menu"/>


    </LinearLayout>



    </android.support.design.widget.NavigationView>


    </android.support.v4.widget.DrawerLayout>

Класс активности

public class MainActivity extends AppCompatActivity {


private DrawerLayout mDrawerlayout ;
private ActionBarDrawerToggle mToggle;

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



   // ActionBar bar = getActionBar();
   // bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));



    mDrawerlayout = (DrawerLayout) findViewById(R.id.Drawer) ;
    mToggle = new ActionBarDrawerToggle(this,mDrawerlayout,R.string.draweropen,R.string.drawerclosed) ;



    mDrawerlayout.addDrawerListener(mToggle);
    mToggle.syncState();

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if(mToggle.onOptionsItemSelected(item))
    {
           return true ;
    }

    return super.onOptionsItemSelected(item);
}

}


person Farrukh khalid    schedule 14.02.2018    source источник
comment
NavigationView не предназначен для добавления к нему произвольных View. Если вы не используете NavigationView для его конкретных функций, удалите его и сделайте LinearLayout ящиком, установив на нем android:layout_gravity="start" и присвоив ему определенный layout_width, например, 240dp.   -  person Mike M.    schedule 14.02.2018
comment
удалите LinearLayout внутри NavigationView. Просто <include> макет меню внутри него.   -  person Ishita Sinha    schedule 14.02.2018
comment
@IshitaSinha Это все еще добавляет произвольные View к NavigationView, а это не то, как это должно использоваться. Если NavigationView на самом деле не используется для того, что он делает, его следует просто удалить.   -  person Mike M.    schedule 14.02.2018
comment
@ishita sinha пробовал, не сработало!   -  person Farrukh khalid    schedule 14.02.2018
comment
@MikeM. Я согласен, поэтому я поддержал ваш комментарий.   -  person Ishita Sinha    schedule 14.02.2018
comment
Да, не делай этого. Это ужасный ответ, и я не могу поверить, что у него так много голосов. NavigationView предназначен для очень специфического дизайна. Это не должно быть универсальным контейнером для других View. Вы не используете его для того, что он делает, поэтому просто удалите его и сделайте LinearLayout ящиком. Ящик не обязательно должен быть NavigationView. Это может быть почти любой View, например ваш LinearLayout, или даже просто <include>, в зависимости от того, что в нем.   -  person Mike M.    schedule 14.02.2018
comment
@Mike M. Спасибо, сработало! но теперь возникает другая проблема: макет, который я добавил, не показывает цвета фона, которые он должен отображать.   -  person Farrukh khalid    schedule 14.02.2018
comment
извини мужик мой плохой! просто глупая ошибка!   -  person Farrukh khalid    schedule 14.02.2018
comment
Я не уверен, что вы имеете в виду. Вы можете установить background на LinearLayout, если вы об этом говорите. Я считаю, что значение по умолчанию для NavigationView - android:background="?android:attr/windowBackground", которое вы можете добавить к LinearLayout самостоятельно.   -  person Mike M.    schedule 14.02.2018
comment
О, понял? Прохладный.   -  person Mike M.    schedule 14.02.2018
comment
ответьте на вопрос, чтобы я мог принять ваш ответ!   -  person Farrukh khalid    schedule 14.02.2018


Ответы (1)


Вы должны включить свой Nav. Такие элементы меню ящика, как это, проверьте приведенный ниже xml-код в качестве ссылок:

Здесь включено как app:menu="@menu/nav_drawer_items"

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

 <?xml version="1.0" encoding="utf-8"?>

   <android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <android.support.design.widget.NavigationView
        android:id="@+id/nav1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/nav_drawer_items"
        app:itemBackground="@color/app_bg_color"
        app:itemIconTint="@color/text_white"
        app:itemTextColor="@color/text_white"
        android:background="@color/bottom_navigation_color"
        android:fitsSystemWindows="true"
        android:theme="@style/NavigationView" />
</android.support.v4.widget.DrawerLayout>
person Abhishek kumar    schedule 14.02.2018