Я пытался сделать DrawerLayout
, который имеет ViewPager
и LinearLayout
, прикрепленный к нижней части DrawerLayout
. Проблема в том, что ViewPager
и LinearLayout
перекрываются в верхней части представления, и все мои усилия по перемещению LinearLayout
вниз потерпели неудачу.Drawerlayout children views overlapping
XML-макета:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/tabstrip"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@id/base_activity_viewpager"
android:orientation="vertical" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textIsSelectable="false" />
</LinearLayout>
<!-- Naviagtion drawer -->
<ListView
android:id="@+id/drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#111"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
Я попытался, добавив несколько вещей linear_layout:
android:layout_gravity="bottom"
(вызывает IllegalStateException)android:layout_below="@id/viewpager"
android:layout_alignparentbottom="true"
Но все эти значения, похоже, игнорируются, даже изменение android:layout_width
из LinearLayout
игнорируется. Я думаю, что я пропускаю что-то очевидное, но если у кого-то есть предложения о том, как это сделать, мы будем очень благодарны.
Благодарим вас, я должен был внимательно прочитать обучение – Meatje
Может ли второй ребенок быть чем-то другим, кроме списка, например, linearlayout или любым другим видом? Я пытался поставить LinearLayout с андроид: layout_gravity = "старт" и у меня была эта ошибка: ClassCastException: android.widget.LinearLayout $ LayoutParams не может быть приведен к android.support.v4.widget.DrawerLayout $ LayoutParams – BigDan
@ BigDan Возможно, но убедитесь, что вы передаете правильный объект (ваш LinearLayout) для методов 'isDrawerOpen',' closeDrawer' и т. Д. –