Реализация BottomNavigationView с ScrollView - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь реализовать BottomNavigationView и в содержимом ScrollView.Все в порядке, но когда BottomNavigationView открывает FrameLayout с ScrollView, он не работает больше

Это моя активность_основная.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.panel.roubook.activities.NewBook">


    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/bottom_navigation"
        android:layout_alignParentTop="true">

    </FrameLayout>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:itemBackground="@color/colorAccent"
        app:itemIconTint="@color/colorPrimary"
        app:itemTextColor="@color/colorPrimary"
        app:menu="@menu/navigation_items" />

</RelativeLayout>

Это мой кадр

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="20dp"
        android:paddingLeft="24dp"
        android:paddingRight="24dp">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="72dp"
            android:layout_marginBottom="5dp"
            android:layout_gravity="center_horizontal" />

        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>

        <!-- Password Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtPassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:hint="@string/user_password"/>
        </android.support.design.widget.TextInputLayout>

        <!-- Signup Button -->
        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_login"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp"
            android:padding="12dp"
            android:text="@string/user_btn_login"/>

        <TextView android:id="@+id/link_register"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp"
            android:text="@string/user_link_to_register"
            android:gravity="center"
            android:textSize="16dip"/>

        <TextView android:id="@+id/link_forgot"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp"
            android:text="@string/user_link_forgot_password"
            android:gravity="center"
            android:textSize="16dip"/>


        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>

        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>


        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>


        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>

        <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="0dp">
            <EditText android:id="@+id/txtEmail6"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/user_email_text" />
        </android.support.design.widget.TextInputLayout>

    </LinearLayout>
</ScrollView>

В моем файле MainActivity.java

protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FragmentManager fragmentManager = getFragmentManager();
        final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
        bottomNavigationView.setOnNavigationItemSelectedListener(
                new BottomNavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                        switch (item.getItemId()) {
                            case R.id.action_explorer:
                                return true;

                            case R.id.action_ready:
                                return true;

                            case R.id.action_account:
                                fragmentTransaction.replace(android.R.id.content , new Account());
                                fragmentTransaction.commit();
                                return true;

                        }
                        return true;
                    }
                });
    }

Когда я нажимаю учетную запись, экран переключается на учетную запись, но просмотр прокрутки накладывается на BottomNavigationView и не работает с другой кнопкой BottonNavigationView

enter image description here

Извините за мой английский.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Заменить android.R.id.content на R.id.content.

android.R.id.content - это не идентификатор ресурса, который вы задали в activity_main.xml.

0 голосов
/ 25 мая 2018

Замените android.R.id.content на R.id.content, потому что android.R.id.content не ваш идентификатор вашего FrameLayout, который вы определили в своем XML, это идентификатор другого представления.

 bottomNavigationView.setOnNavigationItemSelectedListener(
                    new BottomNavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                            switch (item.getItemId()) {
                                case R.id.action_explorer:
                                    return true;

                                case R.id.action_ready:
                                    return true;

                                case R.id.action_account:
                                    fragmentTransaction.replace(R.id.content , new Account());
                                    fragmentTransaction.commit();
                                    return true;

                            }
                            return true;
                        }
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...