enter image description here

Мне нужна вкладка, как на картинке выше. Если я выберу адрес, она должна отобразить существующую вкладку адреса. Если я выберу новый адрес, она должна отобразить форму адреса. Но вкладки должны быть в определенной области деятельности. Возможно ли это в android?

3
VibinReji Y 23 Фев 2015 в 10:33

3 ответа

Лучший ответ

Если вы хотите создать свой макет (Просмотр) в действии

1) Попробуйте использовать этот xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<!--     ADD YOUR FIRST VIEW ie YOUR SELECT SERVICE DROP DOWN -->

<!--     ADD YOUR SECOND VIEW ie OF VISITING CHARGE 250 APPLICABLE -->


    <!-- LAYOUT FOR YOUR TAB -->

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/addressButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/addressActiveBtn"
            android:text="address" />

        <Button
            android:id="@+id/newAddressButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/addressDeActiveBtn"
            android:text="new address" />

    </LinearLayout>

    <!-- CREATE ADDRESS SCREEN LAYOUT AND INCLUDE HERE -->

    <include
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/addressScreen"
        android:visibility="visible" />

    <!-- CREATE NEW ADDRESS SCREEN LAYOUT AND INCLUDE HERE -->

    <include
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/newAddressScreen"
        android:visibility="gone" />

</LinearLayout>

2) Вам необходимо обрабатывать представления макета (адрес и новый адрес) по коду.

ie you need to implement onClickListener on your tab buttons and handle
switching of layout views of Address and NewAddress

Как:

addressButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        addressLinearLayout.setVisibility(View.VISIBLE);
        newAddressLinearLayout.setVisibility(View.GONE);
    }
});


newAddressButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        addressLinearLayout.setVisibility(View.GONE);
        newAddressLinearLayout.setVisibility(View.VISIBLE);
    }
});

Надеюсь, это вам как-то поможет ....

2
A.R. 23 Фев 2015 в 08:12

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

ViewStubExample

0
Silmood 23 Фев 2015 в 08:14

Я не думаю, что можно использовать такие вкладки навигации Android.

Однако я бы создал две кнопки и два фрагмента. При нажатии на первую кнопку будет показан фрагмент с адресом, а при нажатии на вторую кнопку отобразится форма.

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

0
MlleMei 23 Фев 2015 в 07:56