#android #android-studio #android-linearlayout
#Android #android-studio #android-linearlayout
Вопрос:
Пункты меню в панели навигации не реагируют из-за линейной компоновки.Я пробовал ограниченную компоновку вместо линейной компоновки.Но это дает те же результаты.Без этой линейной компоновки или ограниченного макета пункты меню доступны для просмотра и реагирования. Как я могу исправить эту ошибку и сделать пункты меню интерактивными с помощью линейной компоновки?
<com.google.android.material.navigation.NavigationView
android:id="@ id/navView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_items">
</com.google.android.material.navigation.NavigationView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:layout_marginTop="50dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="20dp"
android:orientation="vertical"
tools:context=".homePageDuplicate">
<ImageView
android:id="@ id/imageView3"
android:layout_width="139dp"
android:layout_height="166dp"
android:layout_gravity="center"
app:srcCompat="@drawable/app_logo" />
<TextView
android:id="@ id/textView2"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_gravity="center"
android:layout_marginTop="15dp"
android:text="text"
android:textColor="#FF9800/>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal"
android:layout_marginTop="40dp">
<Button
android:layout_height="120dp"
android:layout_width="120dp"
android:backgroundTint="#29A536"
android:background="@drawable/rounded_edittext"
android:drawableTop="@drawable/ic_local_taxi_black_24dp"
android:gravity="bottom|center_horizontal"
android:paddingBottom="8dp"
android:paddingTop="5dp"
android:text="btn1"
android:layout_gravity="center"
android:onClick="onclick" />
<Button
android:layout_height="120dp"
android:layout_gravity="center"
android:backgroundTint="#F1110C"
android:drawableTop="@drawable/ic_account_balance_black_24dp"
android:gravity="bottom|center_horizontal"
android:paddingTop="5dp"
android:paddingBottom="8dp"
android:text="btn"
android:layout_weight="1.5"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/rounded_edittext"
android:layout_width="120dp"
android:onClick="onclick2" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="horizontal"
android:layout_marginTop="0dp">
<Button
android:layout_height="120dp"
android:backgroundTint="#D1522A"
android:drawableTop="@drawable/ic_phone_in_talk_black_24dp"
android:gravity="bottom|center_horizontal"
android:paddingTop="9.5dp"
android:paddingBottom="8dp"
android:text="btn"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_gravity="center"
android:background="@drawable/rounded_edittext"
android:onClick="onclick3" />
<Button
android:layout_width="120dp"
android:layout_height="120dp"
android:backgroundTint="#8F7608"
android:drawableTop="@drawable/ic_local_hospital_black_24dp"
android:gravity="bottom|center_horizontal"
android:text="btn"
android:textColor="#FFFFFF"
android:textSize="16dp"
android:textStyle="bold"
android:layout_weight="1.5"
android:layout_gravity="center"
android:background="@drawable/rounded_edittext"
android:onClick="onclick"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
</androidx.drawerlayout.widget.DrawerLayout>
Ответ №1:
Поменяйте порядок ваших NavigationView
и ваших LinearLayout
, чтобы NavigationView
он был ниже вашего LinearLayout
в вашем XML-файле. Это гарантирует, что NavigationView
«сверху» LinearLayout
, когда дело доходит до получения событий щелчка.