activitygroup

时间:2024-11-26 17:22:31编辑:优化君

android 中如何让控件一直在窗体底部

android 让一个控件按钮居于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" android:layout_weight="1" 2. 采用relativelayout布局:android:layout_alignParentBottom="true" 3. 采用 fragment 布局(activitygroup 已经被弃用不建议使用)=====================================1.采用linearlayout布局:android:layout_weight="1" android:orientation="vertical">2. 采用relativelayout布局:android:orientation="vertical">3. 采用 fragment 布局(activitygroup 已经被弃用不建议使用)==============================================


android在底部有导航栏的情况下怎么随时监听键盘的弹出和消失

原理:自定义布局的onSizeChanged()方法,在其中增加一个监听接口,当软键盘显示或隐藏使得布局尺寸发生改变,就能捕获到这个事件。

具体方法如下:
首先,在清单文件Manifest.xml中的对应的Activity标签内设置
android:windowSoftInputMode=”adjustResize”
作用是当软键盘显示或隐藏时,该Activity主窗口总是会被调整大小以便留出软键盘的空间。唯有这样才能保证布局触发onSizeChanged()方法。

然后,自定义一个布局,具体是RelativeLayout、LinearLayout或是其它的,根据实际情况而定,自定义的目的是在其onSizeChanged()方法中增加一个监听接口。这里给出一个自定义RelativeLayout布局代码:

public class CustomRelativeLayout extends RelativeLayout {

private OnSizeChangedListener listener;

public CustomRelativeLayout(Context context) {
super(context);
}

public CustomRelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
}

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {

Log.d(TAG.CUSTOM_VIEW, “onSizeChanged”);
super.onSizeChanged(w, h, oldw, oldh);
if (listener != null) {
listener.onSizeChanged(w, h, oldw, oldh);
}
}

public void setOnSizeChangedListener(OnSizeChangedListener listener) {
this.listener = listener;
}

/** * Activity主窗口大小改变时的回调接口(本示例中,等价于软键盘显示隐藏时的回调接口) */
public interface OnSizeChangedListener {
public void onSizeChanged(int w, int h, int oldw, int oldh);
}
}

最后,在程序中使用此接口(xxx.setOnSizeChangedListener(…))即可实现监听键盘隐藏或显示事件。


上一篇:长沙空调

下一篇:没有了