我做了一个布局。当我开始输入登录凭证时,键盘出现,现在我无法滚动以填充其他详细信息。因此所有视图都隐藏在键盘后面。请帮我解决这个问题,这样当键盘打开时,它应该开始滚动以查看其他视图
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@drawable/login_bg" >
<RelativeLayout
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="hideKeyboard" >
<ImageView
android:id="@+id/top_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/blank_header"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/top_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="fitXY"
android:src="@drawable/login_font" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:onClick="hideKeyboard" >
<Utility.LoginRL
android:id="@+id/scrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="85dp"
android:onClick="hideKeyboard"
android:scrollbars="none" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:onClick="hideKeyboard"
android:paddingBottom="15dp"
android:src="@drawable/logo" />
<RelativeLayout
android:id="@+id/user_pass_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/logo"
android:layout_centerHorizontal="true"
android:layout_margin="5dip">
<LinearLayout
android:id="@+id/username_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/user_text1"
android:gravity="center_vertical"
android:onClick="showKeyboard"
android:paddingBottom="20dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingLeft="10dp"
android:text="User Name"
android:textColor="#9D9D9D"
android:textSize="20dp" />
<EditText
android:id="@+id/uName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#00000000"
android:paddingLeft="10dp"
android:singleLine="true"
android:text=""
android:textColor="#228ED3"
android:textSize="20dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/password_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/username_layout"
android:background="@drawable/user_text2"
android:gravity="center_vertical"
android:onClick="showKeyboard"
android:layout_margin="5dip"
android:paddingBottom="10dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:onClick="showKeyboard"
android:paddingLeft="10dp"
android:paddingRight="5dp"
android:text="Password"
android:textColor="#9D9D9D"
android:textSize="20dp" />
<EditText
android:id="@+id/pass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="#00000000"
android:paddingLeft="10dp"
android:password="true"
android:singleLine="true"
android:text=""
android:textColor="#228ED3"
android:textSize="20dp" />
</LinearLayout>
</RelativeLayout>
<!--
<LinearLayout
android:id="@+id/site_url_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/user_pass_layout"
android:layout_centerHorizontal="true"
android:paddingBottom="10dp"
android:paddingTop="20dp" >
-->
<TextView
android:id="@+id/lbl_siteUrl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/user_pass_layout"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:background="@drawable/site_url1"
android:gravity="center_vertical"
android:onClick="showKeyboard"
android:paddingLeft="10dp"
android:layout_margin="5dip"
android:paddingTop="10dp"
android:text="Site Url"
android:textColor="#9D9D9D"
android:textSize="20dp" />
<EditText
android:id="@+id/siteUrl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lbl_siteUrl"
android:layout_centerHorizontal="true"
android:background="@drawable/site_url2"
android:gravity="top"
android:paddingLeft="10dp"
android:singleLine="true"
android:text="http://"
android:textColor="#228ED3"
android:textSize="20dp" />
<!-- </LinearLayout> -->
<ImageView
android:id="@+id/login_btn"
android:layout_width="wrap_content"
android:layout_margin="5dip"
android:layout_height="wrap_content"
android:layout_below="@id/siteUrl"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:paddingBottom="10dp"
android:src="@drawable/login_btn" />
<ImageView
android:id="@+id/forgot_pass_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/login_btn"
android:layout_centerHorizontal="true"
android:src="@drawable/forgot_pass_btn" />
</RelativeLayout>
</Utility.LoginRL>
</RelativeLayout>
</RelativeLayout>
LoginRL
公共类LoginRL扩展了ScrollView { public boolean isKeyboardHidden = true;
public LoginRL(Context context) {
super(context);
}
public LoginRL(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public LoginRL(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int proposedheight = MeasureSpec.getSize(heightMeasureSpec);
final int actualHeight = getHeight();
if (actualHeight > proposedheight){
isKeyboardHidden = false;
//LoginScreen.keyboardToolbar.setVisibility(View.VISIBLE);
} else {
isKeyboardHidden = true;
//LoginScreen.keyboardToolbar.setVisibility(View.GONE);
}
}
}
答案 0 :(得分:0)
使用此:
InputMethodManager inputManager = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
答案 1 :(得分:0)
将您的布局包裹在ScrollView
内,您可以在显示键盘时滚动。
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/top_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="hideKeyboard" >
.......
</ScrollView>