我有一个有2页的viewpager。在第2页,我有6个Editexts来输入文本。当我切换到第2页时,我想显示sortkeyboard。我尝试了很多解决方案,但它对我没用。
这是我的布局:
<?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:clickable="true"
android:background="@color/background_splash"
android:orientation="vertical">
<ImageView
android:id="@+id/imgLogo"
android:layout_width="@dimen/logo_height_primary"
android:scaleType="centerInside"
android:layout_height="@dimen/logo_height_primary"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:src="@mipmap/ic_logo" />
<TextView
android:id="@+id/tvHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:text="@string/tip_enter_otp"
android:textColor="#222222"
android:textSize="14sp" />
<LinearLayout
android:id="@+id/lnOtp"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<Editext
android:id="@+id/edtOTP1"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:gravity="center"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP2"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP3"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP4"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP5"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP6"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
</LinearLayout>
</LinearLayout>
谢谢你们
答案 0 :(得分:0)
添加此代码以打开键盘。您可以在onTabSelected
方法
InputMethodManager inputMethodManager =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(
linearLayout.getApplicationWindowToken(),
InputMethodManager.SHOW_FORCED, 0);
答案 1 :(得分:0)
在XML文件的布局标记中使用此属性:
android:focusable="true"
android:focusableInTouchMode="true"
它不适用于ScrollView,因此您需要将这些属性添加到ScrollView的主子级。
<?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:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/background_splash"
android:orientation="vertical">
<ImageView
android:id="@+id/imgLogo"
android:layout_width="@dimen/logo_height_primary"
android:scaleType="centerInside"
android:layout_height="@dimen/logo_height_primary"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:src="@mipmap/ic_logo" />
<TextView
android:id="@+id/tvHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:text="@string/tip_enter_otp"
android:textColor="#222222"
android:textSize="14sp" />
<LinearLayout
android:id="@+id/lnOtp"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<Editext
android:id="@+id/edtOTP1"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:gravity="center"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP2"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP3"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP4"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP5"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:layout_marginRight="@dimen/edt_otp_horizontal_margin"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
<Editext
android:id="@+id/edtOTP6"
android:layout_width="@dimen/edt_otp_layout_width"
android:layout_height="match_parent"
android:textSize="@dimen/text_otp_size"
android:padding="@dimen/text_otp_padding"
android:background="@drawable/background_textbox_otp"
android:inputType="numberDecimal"
android:maxLength="1"
android:textAlignment="center"
android:textColor="@android:color/black" />
</LinearLayout>
</LinearLayout>
答案 2 :(得分:0)
在清单中的活动中尝试 windowSoftInputMode ,如下所示
<activity
android:name=".YourActivity"
android:windowSoftInputMode="stateVisible|adjustResize"></activity>