Использование навигационного ящика без TitleBar или ActionBar

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

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

getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); 

Что явно ищет панель действий. Я попробовал пару моделей, которые не сработали, большой, который я только что сделал, пытается найти здесь. Как добавить значки рядом с заголовками для Android Navigation Drawer (что связано с ссылкой, которую я ниже, проект от gitHub Здесь https://github.com/gabrielemariotti/androiddev/tree/master/NavigationDrawer ). Теперь самое главное, я использую настраиваемый макет (т. Е. Относительные макеты, смешанные с линейными макетами), и я действительно потерял то, что должен сделать мой следующий шаг, чтобы заставить это работать.

Sidenote: Когда у меня есть только ListView в моем main_activity.xml (реализация для навигационного ящика), он выполняет правильное скольжение, как это предполагается. Но я не могу для жизни понять, как заполнить его данными. Мне в основном нужны 3 заголовка, с которыми в них будут доступны элементы навигации, с иконками рядом с элементами.

Я обратился к этой модели для большей части моего понимания того, как это сделать с помощью Relative Layouts. Http://gmariotti.blogspot.com/2013/05/creating-navigationdrawer.html Но они используют баны действий / заголовков, что является Действительно бросая меня за петлю.

Solutions Collecting From Web of "Использование навигационного ящика без TitleBar или ActionBar"

На самом деле это довольно просто. Легче, чем с помощью ActionBar. Я пишу ответ с почти простейшими макетами

Сделайте свой xml примерно так:

 <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" > <!-- This is how your main page will look, just 2 buttons --> <RelativeLayout android:layout_width="match_parent" android:layout_height="100dp" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:onClick="onLeft" android:text="left" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:onClick="onRight" android:text="right" /> </RelativeLayout> <!-- Left Drawer --> <RelativeLayout android:id="@+id/whatYouWantInLeftDrawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/background_dark" /> <!-- you can have many more widgets here like buttons or labels --> </RelativeLayout> <!-- Right Drawer --> <RelativeLayout android:id="@+id/whatYouWantInRightDrawer" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="right" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_green_light" /> <!-- you can have many more widgets here like buttons or labels --> </RelativeLayout> </android.support.v4.widget.DrawerLayout> 

Затем сделайте свою деятельность примерно такой:

 public class MainActivity extends Activity { RelativeLayout leftRL; RelativeLayout rightRL; DrawerLayout drawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // I'm removing the ActionBar. requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); leftRL = (RelativeLayout)findViewById(R.id.whatYouWantInLeftDrawer); rightRL = (RelativeLayout)findViewById(R.id.whatYouWantInRightDrawer); drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); } public void onLeft(View view) { drawerLayout.openDrawer(leftRL); } public void onRight(View view) { drawerLayout.openDrawer(rightRL); } } 

Вот и все. Надеюсь, поможет.

Я знаю, что это можно сделать без использования любой из этих вещей. Мне интересно, как это сделать.

Шаг №1: Следуйте инструкциям по использованию DrawerLayout , например, шаги в этом учебном пособии , пропуская все, что связано с панелью действий.

Шаг № 2: Нет шага №2.

Хотя DrawerLayout может работать с панелью действий, это не требуется, и на самом деле требуется дополнительная настройка.