2017-10-10 2 views
0

Ich versuche, einen Chat zu tun. MainActivity hat eine ToolBar und BottomNavigationVIew.Android BottomNavigationVIEW Overlap Fragment Inhalt

Der Chat fragment hat eine recyclerView, ein editText und ImageButton, aber wenn ich das Fragment laden die BottomNavigationVIew überlappt die EditText und die ImageButton

Ich weiß nicht, ob dies wichtig ist, aber in Android Studio das Element von BottomNavigationVIew aussieht kleiner, als es nicht zum Beispiel wie die ToolBar ist auch verwende ich android:layout_above="@+id/navigation" und es funktioniert nicht enter image description here

enter image description here

Ich habe viele Wege versucht, aber ich kann es nicht tun

activity_main.xml

<RelativeLayout 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/activity_home" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/tv_parent_name" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_weight="1" 
       android:text="@string/parent_name" 
       android:textSize="20sp" /> 


      <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto" 
       android:id="@+id/student_photo" 
       android:layout_width="55dp" 
       android:layout_height="55dp" 
       android:layout_alignParentEnd="true" 

       android:layout_alignParentRight="true" 
       android:layout_gravity="right|center" 
       android:onClick="onClick" 
       android:padding="4dp" 
       android:src="@drawable/foto" 
       app:civ_border_color="@color/iron" 
       app:civ_border_width="1dp" /> 

     </LinearLayout> 

    </android.support.v7.widget.Toolbar> 


    <FrameLayout 
     android:id="@+id/frame_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_above="@+id/navigation"> 

     <ProgressBar 
      android:id="@+id/pb_loading" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:visibility="invisible" /> 
    </FrameLayout> 

</LinearLayout> 

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="@color/primary_dark" 
    app:itemIconTint="@color/nav_item_state_list" 
    app:itemTextColor="@color/nav_item_state_list" 
    app:menu="@menu/menu_navigation" /> 
</RelativeLayout> 

chat_fragment.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/messages" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:scrollbars="vertical" 
    android:scrollbarStyle="outsideOverlay"/> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:orientation="horizontal" 
    android:gravity="center_vertical"> 

    <EditText 
     android:id="@+id/message_input" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:hint="@string/prompt_message" 
     android:imeActionId="@+id/send" 
     android:imeActionLabel="@string/action_send" 
     android:imeOptions="actionSend" 
     android:inputType="text" 
     android:maxLines="1"/> 
    <ImageButton 
     android:id="@+id/send_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_menu_send" 
     android:contentDescription="@string/action_send"/> 

</LinearLayout> 

</LinearLayout> 

fragment.java

   FragmentManager fragmentManager = getFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentManager.popBackStackImmediate(); 
      fragmentTransaction.replace(R.id.frame_layout, chat); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 

Antwort

1

In Ihrem activity_main.xml, machen Sie Ihre Wurzel Layout LinearLayout mit Ausrichtung auf vertikal. Entfernen Sie die LinearLayout direkt im Root-Layout. Und legen Sie die folgende Höhe-Breite Config für Ihre FrameLayout:

android:layout_width="match_parent" 
android:layout_height="0dp" 
android:layout_weight="1" 

Schließlich entfernen Sie alle align... Sachen, weil sie innerhalb LinearLayout nicht funktionieren.

0

Sie müssen Verschiebe dein FrameLa yout Code aus Linearlayout (i nach Linearlayout bedeuten), und auch müssen Sie diesen Code an den Rahmen hinzufügen:

android:layout_above="@+id/navigation" 
Verwandte Themen