Я использую представление навигации с макетом ящика и настраиваемый макет в боковом представлении навигации в качестве меню и включил его в представление навигации, но, заметив, это видно, я также попытался добавить другой тип представлений, но в режиме навигации ничего не отображается. Ниже приведен основной 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);
}
}
NavigationView
не предназначен для добавления к нему произвольныхView
. Если вы не используетеNavigationView
для его конкретных функций, удалите его и сделайтеLinearLayout
ящиком, установив на немandroid:layout_gravity="start"
и присвоив ему определенныйlayout_width
, например,240dp
. - person Mike M.   schedule 14.02.2018LinearLayout
внутриNavigationView
. Просто<include>
макет меню внутри него. - person Ishita Sinha   schedule 14.02.2018View
кNavigationView
, а это не то, как это должно использоваться. ЕслиNavigationView
на самом деле не используется для того, что он делает, его следует просто удалить. - person Mike M.   schedule 14.02.2018NavigationView
предназначен для очень специфического дизайна. Это не должно быть универсальным контейнером для другихView
. Вы не используете его для того, что он делает, поэтому просто удалите его и сделайтеLinearLayout
ящиком. Ящик не обязательно должен бытьNavigationView
. Это может быть почти любойView
, например вашLinearLayout
, или даже просто<include>
, в зависимости от того, что в нем. - person Mike M.   schedule 14.02.2018background
наLinearLayout
, если вы об этом говорите. Я считаю, что значение по умолчанию дляNavigationView
-android:background="?android:attr/windowBackground"
, которое вы можете добавить кLinearLayout
самостоятельно. - person Mike M.   schedule 14.02.2018