这是我的屏幕,键盘后面隐藏着一个按钮。
我想要这样,但可滚动。 -
每当键盘打开时,我想让它看起来和图像一样。但是,要使其可滚动,以便用户可以滚动查看屏幕的底部(包括按钮),即使键盘处于打开状态。
我试过了 -
android:windowSoftInputMode="adjustResize"
但是,只要键盘打开,这就会使底部向上移动。
如此图片所示 -
我不想要 - (在打开键盘时向上移动Create Account
按钮)
滚动后,创建帐户按钮必须可见。
这是布局 -
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root_layout"
android:fillViewport="true"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10"
>
<LinearLayout android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<EditText
android:id="@+id/et_username_or_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/et_hint_username_or_email"
android:inputType="textEmailAddress"
android:singleLine="true"
/>
<EditText
android:id="@+id/et_pswd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/et_hint_password"
android:password="true"
android:singleLine="true"
/>
<Button
android:id="@+id/btn_sign_in"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_sign_in"
android:background="@color/lighter_orange"
android:textColor="@android:color/white"/>
<TextView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/or"
android:gravity="center_horizontal"
android:textColor="@android:color/black"/>
<Button
android:id="@+id/btn_take_a_peek"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_take_a_peek"
android:textColor="@android:color/white"
android:background="@color/button_gray"/>
<TextView
android:layout_marginTop="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/forgot_password"
android:gravity="center_horizontal"
android:textColor="@color/text_gray"/>
</LinearLayout>
</LinearLayout>
<LinearLayout android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<Button
android:id="@+id/btn_create_account"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/btn_create_account"
android:background="@color/button_very_light_orange"
android:textColor="@android:color/white"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
请帮我解决这个问题。
答案 0 :(得分:5)
我有同样的问题并解决了它。
将此内容添加到班级AndroidManifest中<activity>
标记内的课程中:
android:windowSoftInputMode="stateHidden|adjustResize">
或:
<activity
android:name="com.app.app.RegisterScreen"
android:parentActivityName="com.app.app.LogInScreen"
android:windowSoftInputMode="stateHidden|adjustPan">
</activity>
示例:
<activity
android:name="com.app.yourapp.LogInScreen"
android:windowSoftInputMode="stateHidden|adjustPan">
</activity>
这适合我。
答案 1 :(得分:5)
在清单文件中添加此输入模式。
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Sign-Up/Login Form</title>
<link href='http://fonts.googleapis.com/css?family=Titillium+Web:400,300,600' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="form">
<ul class="tab-group">
<li class="tab active"><a href="#leaderboard">RecentWeek</a></li>
<li class="tab"><a href="#login">Overall</a></li>
</ul>
<div class="tab-content">
<div id="signup">
<div class="leaderboard" id="leaderboard">
<ol>
<li>
<mark>Mustaque Rashid</mark>
<small>315</small>
</li>
<li>
<mark>Deepa Balasubramaniam</mark>
<small>301</small>
</li>
<li>
<mark>Raymond Knight</mark>
<small>292</small>
</li>
<li>
<mark>Trevor McCormick</mark>
<small>245</small>
</li>
<li>
<mark>Andrew Fox</mark>
<small>203</small>
</li>
<li>
<mark>Andrew Fox</mark>
<small>203</small>
</li>
<li>
<mark>Trevor McCormick</mark>
<small>245</small>
</li>
<li>
<mark>Andrew Fox</mark>
<small>203</small>
</li>
</ol>
</div>
</div>
<div id="login">
</div>
</div><!-- tab-content -->
</div>
<!-- /form -->
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src="js/index.js"></script>
</body>
</html>
答案 2 :(得分:0)
制作视图的根
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
...
</ScrollView>
答案 3 :(得分:0)
答案 4 :(得分:0)
我希望它对你有所帮助我已经设计了这种类型的布局。我没有编辑你的布局。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.clearfly.groupfone"
android:id="@+id/registration_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:fillViewport="true"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginTop="40dp"
android:layout_weight="0.4"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivProfilePicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_launcher" >
</ImageView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="0.6"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/firstname_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="true"
android:hint="First Name"
android:inputType="textCapWords|textPersonName|textNoSuggestions"
android:maxLength="50"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/lastname_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Last Name"
android:inputType="textCapWords|textPersonName|textNoSuggestions"
android:maxLength="50"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/email_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="email"
android:inputType="textEmailAddress"
android:maxLength="255"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/password_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Password"
android:inputType="textPassword"
android:maxLength="20"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="0.2"
android:orientation="vertical" >
<EditText
android:id="@+id/verify_password_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:cursorVisible="true"
android:hint="Verify pwd"
android:inputType="textPassword"
android:maxLength="20"
android:paddingLeft="40dp"
android:singleLine="true"
android:textColor="@android:color/black"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
答案 5 :(得分:0)
我尝试了您的代码,我也有同样的问题Here
这里我在你的代码中进行了一些修正,值代码为虚拟(字符串,颜色等)...代码片段是:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical"
android:padding="10dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical" >
<EditText
android:id="@+id/et_username_or_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="HAI"
android:inputType="textEmailAddress"
android:singleLine="true" />
<EditText
android:id="@+id/et_pswd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="HH"
android:password="true"
android:singleLine="true" />
<Button
android:id="@+id/btn_sign_in"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#5465"
android:text="sigin"
android:textColor="@android:color/white" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:text="ORR"
android:textColor="@android:color/black" />
<Button
android:id="@+id/btn_take_a_peek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="#ff8f43"
android:text="sfse"
android:textColor="@android:color/white" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="Forgot"
android:textColor="#ec0974" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/btn_create_account"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#ffd250"
android:text="Create Accounr"
android:textColor="@android:color/white" />
</RelativeLayout>
</ScrollView>
同时将以下参数设置为您Manifest中的活动
机器人:windowSoftInputMode = “adjustPan”
**在视图中编辑外层是滚动视图内的相对布局,我将创建帐户按钮作为父底部管理。
请在真实设备中试用。
试试这个并提供反馈! 快乐的编码..
答案 6 :(得分:0)
老者质疑我今天要努力解决的问题,对我有用的是从清单和活动XML中删除“ android:windowSoftInputMode”,而不是使根滚动视图成为根滚动视图的子代,
<androidx.coordinatorlayout.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/FrameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MyActivity"
>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_scrollview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- your xml code here. -->
</RelativeLayout>
</ScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
答案 7 :(得分:0)
我可能迟到了,但可能会帮助别人。
我也遇到了这个问题,并最终隐藏了我们不想在键盘上看到的按钮。因此,在这种情况下,它是“创建帐户”,将在键盘上方隐藏并在键盘下方显示。
答案 8 :(得分:0)
如果要使其滚动(仅在弹出键盘时),则需要在scrollView中扭曲AdjustResize,但是AdjustResize会自动为您移动页面。
可能是您可以在AdjustResize发生后将页面滚动到所需位置
const sendMessage = (event) => {
event.preventDefault(); // prevent form to refresh the page
db.collection("messages").add({
username: username,
message: input,
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
});
/* setMessages([...messages, { username: username, message: input }]);*/
setInput("");
};