webview设置唤起键盘缩小webview高度

webview设置唤起键盘缩小webview高度,第1张

题主是否想询问“webview设置唤起键盘缩小webview高度怎么调整”。

1、为WebView设置一个OnGlobalLayoutListener监听器,通过该监听器可以获取到WebView的高度。

2、在Android中,可以通过监听键盘d出事件来动态调整WebView的高度,以避免键盘遮挡WebView或者导致WebView显示不全。

public int getTextWidth(String text, Paint paint) {

Rect bounds = new Rect();

paintgetTextBounds(text, 0, textlength(), bounds);

int width = boundsleft + boundswidth();

return width;

}

public int getTextHeight(String text, Paint paint) {

Rect bounds = new Rect();

paintgetTextBounds(text, 0, textlength(), bounds);

int height = boundsbottom + boundsheight();

return height;

}

Android动态改变View控件大小的方法:1、声明控件参数获取对象 LayoutParams lp;2、获取控件参数: lp = 控件idgetLayoutParams();3、设置控件参数:如高度。 lpheight -= 10;4:、使设置生效:控件idsetLayoutParams(lp);例如如要把Imageview下移200px: ImageViewsetPadding( ImageViewgetPaddingLeft(), ImageViewgetPaddingTop()+200, ImageViewgetPaddingRight(), ImageViewgetPaddingBottom());

思路是:因为ViewHolder我们可以拿到每个Item的根布局,所以如果我们为根布局设置单独的OnClick监听并将其开放给Adapter,那不就可以在组装RecyclerView时就能够设置ItemClickListener,只不过这个Listener不是设置到RecyclerView上而是设置到Adapter。

我们首先看ViewHolder的代码:

public class MyViewHolder extends ViewHolder implements OnClickListener,OnLongClickListener{

public ImageView iv;

public TextView tv;

private MyItemClickListener mListener;

private MyItemLongClickListener mLongClickListener;

public MyViewHolder(View rootView,MyItemClickListener listener,MyItemLongClickListener longClickListener) {

super(rootView);

iv = (ImageView)rootViewfindViewById(Riditem_iv);

tv = (TextView)rootViewfindViewById(Riditem_tv);

thismListener = listener;

thismLongClickListener = longClickListener;

rootViewsetOnClickListener(this);

rootViewsetOnLongClickListener(this);

}

/

点击监听

/

@Override

public void onClick(View v) {

if(mListener != null){

mListeneronItemClick(v,getPosition());

}

}

/

长按监听

/

@Override

public boolean onLongClick(View arg0) {

if(mLongClickListener != null){

mLongClickListeneronItemLongClick(arg0, getPosition());

}

return true;

}

}</span>

因为在构造ViewHolder时,rootView将作为一个必传参数传递进来,所以我们只需要拿到rootView并给其绑定点击监听事件即可。

下面要考虑的就是怎样把listener传递进来。Demo中设定了监听点击事件的Interface:MyItemClickListener:

1

2

3

public interface MyItemClickListener {

public void onItemClick(View view,int postion);

}

MyItemClickListener模仿ListView的OnItemClickListener,开放了view和position两个参数,这对习惯使用ListView的开发者们使用起来更得心应手。从ViewHolder的代码中可以看到,执行onClick方法时会调用getPosition()将当前Item的位置回调给listener。getPosition()是ViewHolder的内置方法,可直接使用。

这个首先需要确定你item里面有什么自适应或控制显示隐藏的控件,如果没有的话可以通过adaptergetView()来获取item的view,然后再用 getHeight()来获取屏幕显示的item的高度,如果有隐藏的控件什么的,那就用getMeasuredHeight()来获取控件的物理高度吧,希望可以帮到你

以上就是关于webview设置唤起键盘缩小webview高度全部的内容,包括:webview设置唤起键盘缩小webview高度、如何快速获得TextView的宽度和高度使用Paint.getTextBounds、如何正确获取Android控件的高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9528079.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存