как реализовать навигационный ящик без панели действий, но открывает экран навигации с помощью кнопки на главном экране?

приложение навигационного ящика, у которого есть экран входа в свой фрагмент left_drawer (см. ссылку: как отобразить действие (экран входа) в навигационном ящике Android), я хочу открыть этот экран входа в систему с главного экрана с помощью кнопки, а также не хочу, чтобы панель действий была на навигационном ящике. Может ли кто-нибудь помочь мне с этим?

Заранее спасибо!!


person Kumar Subramanian    schedule 29.12.2013    source источник


Ответы (2)


На самом деле это довольно просто. Проще, чем с 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 Drawrer -->

    <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 Drawrer -->

    <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);
    }
}

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

person Pranav Mahajan    schedule 27.01.2014

Вы можете использовать навигационный ящик. Очень прост в реализации и выглядит очень профессионально. Вместо того, чтобы помещать список в свой навигационный ящик, просто создайте другой макет и разверните макет, когда ваш навигационный ящик активен. Вы можете просмотреть информацию о навигационном ящике здесь.

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

Удачи тебе!

person themrbigfoot    schedule 29.12.2013