我在这里看了很多帖子,似乎无法找到如何做到这一点。
我正在尝试创建以下布局xml。
在中间我希望LinearLayout
内部有一些按钮,位于LinearLayout
的顶部和开头之间,我想要textView
。
LinearLayout 位于 RelativeLayout
内的 ScrollView 内我通过将LinearLayout
和TextView
置于RelativeLayout
内来实现这一目标。 LinearLayout
位于父级的中心,textView
位于linearLayout
之上,位于父级的顶部。文本垂直居中。
问题是当keyboard
开启时。我只将LinearLayout
放在ScrollView
内。
如果我在adjustPan
中使用manifest
,则没有任何反应,我无法scroll
。如果我使用adjustResize
,则Textview
会显示在LinearLayout
之上,而不会显示在linearLayout
之上。那怎么办呢?还是不可能?
如果需要,我只希望scrollable
为<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/black_overlay"
android:animateLayoutChanges="true"
android:hapticFeedbackEnabled="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:fillViewport="true"
android:layout_centerInParent="true"
android:id="@+id/scrollView">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:id="@+id/mLayout">
<Button
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Match"
android:id="@+id/btn_newMatch"
style="@style/ButtonBar"
android:typeface="monospace"/>
<Button
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Manage Matches"
android:id="@+id/btn_manageMatches"
style="@style/ButtonBar"
android:typeface="monospace"/>
<Button
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Manage Teams"
android:id="@+id/btn_manageTeams"
style="@style/ButtonBar"
android:typeface="monospace"/>
<Button
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Settings"
android:id="@+id/btn_settings"
style="@style/ButtonBar"
android:typeface="monospace"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logout"
android:id="@+id/btn_logout"
style="@style/ButtonBar"
android:typeface="monospace"/>
</LinearLayout>
</ScrollView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Name"
android:typeface="monospace"
android:layout_above="@id/scrollView"
android:layout_alignParentTop="true"
android:gravity="center"
android:textSize="50dp"
android:textAppearance="?android:textAppearanceMediumInverse"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"/>
</RelativeLayout>
。
这是代码:
{{1}}
这是adjustResize当前的样子:
没有键盘:
使用键盘:
有人能指出我正确的方向吗?
THX !!! :)
答案 0 :(得分:0)
只需添加此
android:windowSoftInputMode="adjustPan|stateHidden"
到你的清单中的活动声明。
答案 1 :(得分:0)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:background="@android:color/darker_gray"
android:hapticFeedbackEnabled="true" >
<EditText
android:id="@+id/etName"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:gravity="center" />
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/etName"
android:layout_centerInParent="true"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/mLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical" >
<Button
android:id="@+id/btn_newMatch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="New Match"
android:typeface="monospace" />
<Button
android:id="@+id/btn_manageMatches"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Manage Matches"
android:typeface="monospace" />
<Button
android:id="@+id/btn_manageTeams"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Manage Teams"
android:typeface="monospace" />
<Button
android:id="@+id/btn_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Settings"
android:typeface="monospace" />
<Button
android:id="@+id/btn_logout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Logout"
android:typeface="monospace" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
在您的活动标签
中 android:windowSoftInputMode="adjustResize|stateHidden"
答案 2 :(得分:0)
为了防止键盘显示时我的RelativeLayout
中的视图垂直重叠 - 只需添加一个边距即可解决问题
android:layout_marginTop="25dp"