Android Bottom Nav Bar Show После входа в веб-просмотр - PullRequest
0 голосов
/ 03 марта 2019

Я работаю в Android Studio с одним основным видом деятельности, у которого есть Webview, я добавил нижнюю панель навигации и веб-представление имеет функцию входа в систему, я хочу, чтобы нижняя панель навигации не отображалась при входе в систему, она отображается после входа в систему Как я могу достичьэтот?У меня есть только одно основное занятие.

Я пытаюсь решить, но не могу ...

Основной код активности:

myview = (WebView) findViewById(R.id.webView);
progressBar=(ProgressBar) findViewById(R.id.prg);
WebSettings webSettings = myview.getSettings();
webSettings.setJavaScriptEnabled(true);
myview.loadUrl("https://mysuite.app/");
bottomNavigationView= (BottomNavigationView) findViewById(R.id.navigation1);
bottomNavigationView.setVisibility(View.INVISIBLE);
// bottomNavigationView.getMenu().findItem(R.id.webView).setVisible(false);
    bottomNavigationView.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
    @Override
    public void onNavigationItemReselected(@NonNull MenuItem menuItem) {

        switch (menuItem.getItemId()) {

        case R.id.action_profile:
            myview.loadUrl("https://mysuite.app/profilo.php");
            return;

        case R.id.action_order:
            myview.loadUrl("https://mysuite.app/ordini.php");
            return;

        case R.id.action_points:
            myview.loadUrl("https://mysuite.app/punti.php");
            return;

        case R.id.action_network:
            myview.loadUrl("https://mysuite.app/viparea.php");
            return;

        case R.id.action_home:
            myview.loadUrl("https://mysuite.app");
            return;

        default:
        return;

        }
    }
}

xml code:

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation1"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_alignParentBottom="true"
        android:background="@color/white1"
        app:menu="@menu/my_navigation_items" /> 

1 Ответ

0 голосов
/ 04 марта 2019

Вы можете добавить функцию LoginActivity, которая реализует только WebView, и функцию MainActivity, содержащую BottomNavigationView

. Или, если необходимо, чтобы вы использовали только одно действие, вы можете использовать фрагменты использования.Мы создадим новый фрагмент с именем loginFragment и при накачивании loginFragment заменим корневой макет вместо дочернего представления и установим видимость BottomNavigationView на невидимое.

примерно так...

<!-- Take notice of the id assigned to the CoordinatorLayout -->
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Views.Discipleship.Supervisor.Main.MainActivityBottomNav">

<!-- Appabar / toolbar layout -->
<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:visibility="invisible"
    android:background="#FFF">
</android.support.design.widget.AppBarLayout>

<!-- Where you would normally replace your fragment layout -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="?attr/actionBarSize"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<!-- Bottom navigation -->
<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:visibility="invisible"
    app:menu="@menu/bottom_navigation"/>

</android.support.design.widget.CoordinatorLayout>

И в вашей MainActivity ... при накачивании фрагмента,

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.rootLayout, fragment);
    transaction.commit();

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

Редактировать Создание нового фрагмента

После этого в открывшемся окне назовите свой фрагмент, в нашем случае (LoginFragment) ... Android будет генерировать большую частькод для вас, в том числе создание файла макета для вновь созданного фрагмента ...

Создайте WebView в этом файле макета фрагментов fragment_login.xml вместо основного макета действия, где он находится сейчас ...

Теперь измените свой основной макет активности, как показано выше в xml, после этого надуйте свой LoginFragment, используя приведенные выше коды ...

Я предлагаю вам прочитать фрагменты, чтобы лучше понять, что происходит здесьособенно коды, которые будут сгенерированы для вас в вашем новом фрагменте ...

Также я должен заявить, что все это не является обычным, но работает ... Но опять же, WebView для входа в систему не является обычнымлибо.

...