我知道有很多关于这个话题的问题,但似乎没有一个对我有用。我有一个线性布局,下面有一个编辑文本和图标,但当弹出键盘时,它会覆盖图标和一半编辑文本。
我的清单文件:
<activity
android:name="com.social.pages.Post"
android:windowSoftInputMode="stateVisible|adjustResize"
android:screenOrientation="portrait" >
</activity>
我的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/feed_bg" >
<LinearLayout
android:id="@+id/stories_post_entire"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/story_post"
android:layout_centerHorizontal="true"
android:background="@drawable/bg_parent_rounded_corner"
android:orientation="vertical"
android:paddingBottom="@dimen/feed_item_padding_top_bottom"
android:paddingTop="@dimen/feed_item_padding_top_bottom" >
<!--
<LinearLayout
android:id="@+id/stories_post_text"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:paddingBottom="@dimen/feed_item_padding_top_bottom"
android:paddingLeft="@dimen/feed_item_padding_left_right"
android:paddingRight="@dimen/feed_item_padding_left_right" >
-->
<EditText
android:id="@+id/stories_post_story"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_parent_rounded_corner"
android:ems="10"
android:gravity="top"
android:hint="Tell Your Story..."
android:padding="10dp"
android:paddingLeft="10dp"
android:scrollbars="vertical"
android:typeface="serif" />
<LinearLayout
android:id="@+id/stories_post_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:paddingLeft="@dimen/feed_item_padding_left_right"
android:paddingRight="@dimen/feed_item_padding_left_right" >
<ImageView
android:id="@+id/stories_post_tag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/tag" />
<ImageView
android:id="@+id/stories_post_take_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:scaleType="fitCenter"
android:src="@drawable/take_pic" />
</LinearLayout>
</LinearLayout>
<!-- </LinearLayout> -->
<Button
android:id="@+id/story_post"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Post" />
</RelativeLayout>
尚未编写任何Java代码。
答案 0 :(得分:1)
关于软键盘你唯一能做的就是在清单中设置android:windowSoftInputMode(或者以编程方式动态更改它)。允许的模式基本上没有任何东西(只需让键盘弹出并覆盖任何内容),平移(滚动应用程序以使光标在屏幕上),然后调整大小(调整应用程序大小以完全布置在键盘上方)。
你显然想要调整大小。然而,为了实现这一目标,您的布局需要调整大小 - 需要一些可以缩小的元素,并且仍然适合较小的应用程序,或者需要有可以缩小的空白空间。如果你有很多屏幕上的东西,那就不行了。在这种情况下,Android仍然会确保光标在屏幕上,但不会做任何其他事情。
看看你的布局 - 我看不到任何可以缩小的东西。您可能能够重构它以使编辑文本使用fill_parent以便它可以缩小,但这需要使它(或其直接父级)layout_above和layout_below两个其他元素,因此它的大小是它们之间的剩余空间。除了删除元素之外,这是我能看到的所有内容。
答案 1 :(得分:1)
您将EditText元素设置为300dp高度,这可以防止任何内容向上移动。我能够通过在RelativeLayout中包装EditText并跟随LinearLayout(包含图像)来解决这个问题。通过这样做,您可以将图像外壳LinearLayout设置为alignParentBottom =“true”。我相信这是你想要的效果。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/stories_post_entire"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/story_post"
android:layout_centerHorizontal="true"
android:orientation="vertical" >
<!-- ADDITION -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/stories_post_story"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp"
android:ems="10"
android:gravity="top"
android:hint="Tell Your Story..."
android:padding="10dp"
android:paddingLeft="10dp"
android:scrollbars="vertical"
android:typeface="serif" />
<LinearLayout
android:id="@+id/stories_post_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_marginTop="10dp" >
<!-- ADDITION ^^^ alignParentBottom-->
<ImageView
android:id="@+id/stories_post_tag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:src="@drawable/osumu_blur"/>
<ImageView
android:id="@+id/stories_post_take_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:scaleType="fitCenter"
android:src="@drawable/osumu_blur"/>
</LinearLayout>
<!-- ADDITION -->
</RelativeLayout>
</LinearLayout>
<!-- </LinearLayout> -->
<Button
android:id="@+id/story_post"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Post" />
</RelativeLayout>
注意:我用“dummy_image”
替换了你的drawable src