- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 Bottom Sheet fragment 显示用户对他的评论的回答。在 Bottom Sheet 的底部,我们有编辑文本,用户可以在其中添加新评论。所以,当软键盘打开时,bottomsheet 位于键盘上方,其顶部移动到屏幕之外。但是当键盘打开时, Bottom Sheet 应该调整大小。
这是我的代码:
<android.support.design.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:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include android:id="@+id/toolbar_layout"
layout="@layout/partial_toolbar" />
<android.support.v7.widget.RecyclerView
android:id="@+id/list_comments"
android:layout_below="@+id/toolbar_layout"
android:layout_width="match_parent"
android:overScrollMode="always"
android:layout_height="match_parent"/>
<View
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_above="@+id/comment_container"
android:layout_alignBaseline="@+id/list_comments"
android:background="@drawable/elevation_bottom"/>
<LinearLayout
android:id="@+id/comment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ebffffff"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="@dimen/vertical_spacing"
android:paddingEnd="@dimen/horizontal_spacing"
android:paddingStart="8dp"
android:paddingTop="@dimen/vertical_spacing">
<android.support.v7.widget.AppCompatImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:src="@drawable/ic_add_blue_small"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/bg_message_field"
android:gravity="center_vertical"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/edit_comment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/transparent"
android:hint="@string/comments_add_comment_hint"
android:inputType="textMultiLine"
android:maxLength="200"
android:maxLines="3"
android:minLines="1"
android:paddingBottom="8dp"
android:paddingEnd="0dp"
android:paddingStart="8dp"
android:paddingTop="8dp"
android:textSize="14sp"
app:fontFamily="@font/lora_regular"/>
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@color/transparent"
app:srcCompat="@drawable/ic_send_message"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>
list 中的 Activity (此 Activity 打开对话框)
<activity
android:name=".presentation.ui.category.CategoryDetailsActivity"
android:configChanges="locale|orientation|screenSize|keyboard"
android:windowSoftInputMode="adjustResize"
android:windowTranslucentNavigation="true"
android:windowTranslucentStatus="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Main.NoActionBar" />
我还把这段代码放到方法setupDialog
dialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
最佳答案
从 here 得到这个答案
因为我在我的一个项目中也遇到了同样的问题,
在 BottomSheetFragment
的 onCreateDialog
中使用这个
new KeyboardUtil(getActivity(), rootView);
通过使用下面的类
public class KeyboardUtil {
private View decorView;
private View contentView;
//a small helper to allow showing the editText focus
ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
//r will be populated with the coordinates of your view that area still visible.
decorView.getWindowVisibleDisplayFrame(r);
//get screen height and calculate the difference with the useable area from the r
int height = decorView.getContext().getResources().getDisplayMetrics().heightPixels;
int diff = height - r.bottom;
//if it could be a keyboard add the padding to the view
if (diff != 0) {
// if the use-able screen height differs from the total screen height we assume that it shows a keyboard now
//check if the padding is 0 (if yes set the padding for the keyboard)
if (contentView.getPaddingBottom() != diff) {
//set the padding of the contentView for the keyboard
contentView.setPadding(0, 0, 0, diff);
}
} else {
//check if the padding is != 0 (if yes reset the padding)
if (contentView.getPaddingBottom() != 0) {
//reset the padding of the contentView
contentView.setPadding(0, 0, 0, 0);
}
}
}
};
public KeyboardUtil(Activity act, View contentView) {
this.decorView = act.getWindow().getDecorView();
this.contentView = contentView;
//only required on newer android versions. it was working on API level 19
if (Build.VERSION.SDK_INT >= 19) {
decorView.getViewTreeObserver().addOnGlobalLayoutListener(onGlobalLayoutListener);
}
}
/**
* Helper to hide the keyboard
*
* @param act
*/
public static void hideKeyboard(Activity act) {
if (act != null && act.getCurrentFocus() != null) {
InputMethodManager inputMethodManager = (InputMethodManager) act.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(act.getCurrentFocus().getWindowToken(), 0);
}
}
public void enable() {
if (Build.VERSION.SDK_INT >= 19) {
decorView.getViewTreeObserver().addOnGlobalLayoutListener(onGlobalLayoutListener);
}
}
public void disable() {
if (Build.VERSION.SDK_INT >= 19) {
decorView.getViewTreeObserver().removeOnGlobalLayoutListener(onGlobalLayoutListener);
}
}
}
关于android - 带有键盘向上移动的编辑文本的 Bottom Sheet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48302171/
我是第一次尝试设计网站。我正在尝试在右侧设置一种导航栏,但我无法正确定位它。当我使用边距或填充时,只有边距和填充适用于顶部、右侧和左侧。当我尝试使用 padding-bottom 或 margin-b
这个问题在这里已经有了答案: How can I position my div at the bottom of its container? (25 个答案) 关闭 4 年前。
我有一个垂直的 LinearLayout,它有一个 ListView ,一个 ImageView 在底部,一个在顶部, ListView 填满了留下的空间。 看起来像这样:
https://imgur.com/gallery/xntpREw 有没有人遇到这个问题,或者我做错了什么 更新:我在android 8和9版本上测试了同一个应用程序,但没有出现此故障,因此,这可能特
我将 relativelayout 作为 bottomsheet 行为。在 relativelayout 中,我有 imageview,下面是 recyclerview。现在我想防止用户在 recyc
我在 mi 页面的末尾有这个 navbar-fixed-bottom。 我为 HTML 添加边距底部 html { margin-bottom: 100px } .. 避免页
如何让绝对定位的元素到达页面底部? 我想在我的页面上创建一个“封面”。为了让它覆盖整个页面,我使用了“position: absolute”,四个方向都设置为0。但是,当页面内容的高度大于客户端窗口的
我有一个应该显示日历的 HTML 页面。 有一张图像要显示在日历上方和下方。但是 below(id=bottomCell) 显示不正确(在右边,不在下面)。 你能告诉我如何让底部图片处于正确的位置吗?
对我来说,同时指定 bottom 和 margin-bottom 似乎是矛盾的。因为两者都是指定元素与周围元素/容器之间缩进的方法。也就是说,bottom 应该从边框开始测量,否则它的缩进量是从缩进量
这jsFiddle说明这个问题指的是什么(下面的完整代码)。请注意,即使 #outer-div 应该有 0 个 padding,而 #inner-div 应该有 0 个 margin-bottom,看
我正在尝试完成像 instagram 帖子这样的示例:https://www.instagram.com/p/BXgsKFLBczA/?taken-by=claymicro列表扩展但不会将页脚向下推在
我正在编写一个使用二维数组的程序。用户选择一行和一列;如果至少有一个直接与 N S E 或 W 匹配的元素,则它变为 '.'我一直遇到段错误,因为经过各种测试和解决问题后,我相当确定它陷入了 if t
我正在做一个我第一次使用 scss 的元素。我们有一个主文件,@imports 所有其他文件;这可能还会导入一些其他文件。 编译需要很长时间。人们说这是使用 Sass 时的正常方法。但我怀疑采用相反的
我使用 windbg 在我的 Windows 10 机器上运行一个程序,并让它在初始断点处中断。我获取堆栈的物理底部地址(TEB 的 stackBase),并减去 ntdll!LdrInitializ
我有一个 Bottom Sheet ,我正在加载弹出窗口,但它没有显示在 Bottom Sheet 中。该弹出窗口显示在 Bottom Sheet 格的后面 CustomTextView te
我有一个带有垂直堆栈 View 的 UIScrollView,它有一个标签和一个按钮,我希望按钮停留在屏幕底部,一旦标签的文本增加并到达按钮,按钮将保留在标签下方,并且它们一起滚动。 我在想: let
我在 Android 中创建了一个 View ,我需要从下到上对其进行动画处理,反之亦然。当我单击 ImageView 时,我需要从下到上为完整的 RelativeLayout 设置动画,并且它成功了
我在react native 应用程序中使用react-native-raw-bottom-sheet,打开 Bottom Sheet 时黑色透明 View 。 最佳答案 关于react-nativ
My blog的弹出帖子设置为底部:0;但是当 div 实际上位于底部时,div 中的内容不会移动......有什么想法吗? 最佳答案 看起来你在 javascript 中设置了顶部位置,它覆盖了你的
我在 Google 和此处进行了一些搜索,但找不到适合我的问题的解决方案。我已经完成了网站设计,但忘记包含社交媒体链接。为了解决这个问题,我决定将图标放在页面底部。问题是当内容没有填满整个页面时,图标
我是一名优秀的程序员,十分优秀!