Android keypad hides Bottom sheet dialog fragment views

83 views Asked by At

I am having a bottomsheet dialog fragment in my activity. I want my whole layout to be top of the keyboard when it keyboard is opened. I tried various solutions. Now my layout goes up, but keyboard suggestion strip hides some part of the layout. I tried everything like AdjustResize, AdjustPan, etc

public class EmailBottomSheet extends BottomSheetDialogFragment {
    Context context;
    LinearLayout linearLayout;
    EditText emailEditText;
    TextView invalidEmailTextView;
    Button saveEmailButton;
    
    public EmailBottomSheet() {
    }

    @Override
    public int getTheme() {
        return R.style.DialogStyle;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.bottom_sheet_email_layout, container, false);
        view.setBackgroundResource(R.drawable.top_corner_curve_16);
        linearLayout = view.findViewById(R.id.bottom_sheet_email_layout);
        emailEditText = view.findViewById(R.id.list_of_emails);
        saveEmailButton = view.findViewById(R.id.save_email_lst_btn);
        invalidEmailTextView = view.findViewById(R.id.error_email_text);

        BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(linearLayout);
        setTextToEditText();
        bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}


<style name="DialogStyle" parent="Theme.Design.BottomSheetDialog">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowIsFloating">false</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowSoftInputMode">adjustResize|stateVisible</item>
    </style>


My bottom sheet xml file

        android:id="@+id/email_coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:background="@color/transperent">
              <LinearLayout
                  android:id="@+id/bottom_sheet_email_layout"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="@drawable/top_corner_curve_16"
                  app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
                  android:orientation="vertical">

                  <View
                      android:layout_width="64dp"
                      android:layout_gravity="center"
                      android:layout_height="@dimen/value_4"
                      android:layout_marginTop="@dimen/value_10"
                      android:layout_marginBottom="@dimen/value_10"
                      android:background="#1A000000"/>

                  <TextView
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_gravity="center"
                      android:layout_marginTop="@dimen/value_12"
                      android:layout_marginBottom="@dimen/value_12"
                      android:layout_marginStart="@dimen/value_16"
                      android:layout_marginEnd="@dimen/value_16"
                      android:fontFamily="@font/proximanova_semibold"
                      android:text="@string/emails_list"
                      android:textColor="@color/text_grey"
                      android:textSize="20sp" />

                  <TextView
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="@dimen/value_24"
                      android:layout_marginStart="@dimen/value_16"
                      android:layout_marginEnd="@dimen/value_16"
                      android:text="@string/these_recipients"
                      android:textSize="17sp"
                      android:textColor="@color/text_grey"
                      android:fontFamily="@font/proximanova_regular"
                      android:layout_gravity="start"
                      />

                  <EditText
                      android:id="@+id/list_of_emails"
                      android:layout_width="match_parent"
                      android:layout_height="92dp"
                      android:layout_marginStart="@dimen/value_16"
                      android:layout_marginEnd="@dimen/value_16"
                      android:layout_marginTop="@dimen/value_8"
                      android:background="@drawable/edit_email_grey_bg"
                      android:fontFamily="@font/proximanova_regular"
                      android:gravity="start|top"
                      android:imeOptions="actionNext"
                      android:inputType="textMultiLine"
                      android:paddingLeft="@dimen/value_16"
                      android:paddingTop="@dimen/value_13"
                      android:paddingRight="@dimen/value_16"
                      android:paddingBottom="@dimen/value_13"
                      android:textColor="@color/text_grey"
                      android:textSize="17sp" />

                  <TextView
                      android:visibility="gone"
                      android:id="@+id/error_email_text"
                      android:layout_marginHorizontal="@dimen/value_16"
                      android:layout_marginTop="@dimen/value_8"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:text="Email list is invalid"
                      android:textSize="13sp"
                      android:fontFamily="@font/proximanova_regular"
                      android:textColor="#df0028"/>

                  <Button
                      android:id="@+id/save_email_lst_btn"
                      style="@style/BlackButtonStyle"
                      android:layout_width="match_parent"
                      android:layout_height="52dp"
                      android:layout_gravity="center"
                      android:layout_marginStart="@dimen/value_16"
                      android:layout_marginTop="@dimen/value_40"
                      android:layout_marginEnd="@dimen/value_16"
                      android:layout_marginBottom="@dimen/value_16"
                      android:fontFamily="@font/proximanova_semibold"
                      android:gravity="center"
                      android:text="@string/save"
                      android:textAllCaps="false"
                      android:textColor="@color/white"
                      android:textSize="17sp" />
              </LinearLayout>
    </androidx.coordinatorlayout.widget.CoordinatorLayout>
0

There are 0 answers