Android 如何知道应用程序何时进入后台 介绍

Android 如何知道应用程序何时进入后台 介绍,android,firemonkey,delphi-xe8,android-virtual-keyboard,Android,Firemonkey,Delphi Xe8,Android Virtual Keyboard,注意,下面链接中提供的解决方案没有帮助我解决问题: Hallo堆栈溢出社区 我正在尝试创建一个简单的Android应用程序,它允许用户选择文本和大写或小写,以及一个删除额外空格的功能。我的应用程序只有三个对象,即两个TButton和一个TMemo。我遇到了TMemo和虚拟键盘的问题。每当虚拟键盘弹出时,它就会显示在TMemo的底部。我已经通过使用OnVirtualKeyboardHidden和onvirtualkeybaordshowTForm的事件处理程序解决了这个问题。我是这样做的: pr

注意,下面链接中提供的解决方案没有帮助我解决问题:

Hallo堆栈溢出社区

我正在尝试创建一个简单的Android应用程序,它允许用户选择文本和大写或小写,以及一个删除额外空格的功能。我的应用程序只有三个对象,即两个
TButton
和一个
TMemo
。我遇到了
TMemo
和虚拟键盘的问题。每当虚拟键盘弹出时,它就会显示在
TMemo
的底部。我已经通过使用
OnVirtualKeyboardHidden
onvirtualkeybaordshow
TForm的事件处理程序解决了这个问题。我是这样做的:

procedure TfrmEditor.FormVirtualKeyboardHidden(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
  memInput.Align := memInput.Align.alClient;
end;

procedure TfrmEditor.FormVirtualKeyboardShown(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin
  if memInput.Align <> memInput.Align.alTop then
  begin
    memInput.Align := memInput.Align.alTop;
    memInput.Height := memInput.Height - Bounds.Height;
  end;
end;
过程TfrmEditor.FormVirtualKeyboardHidden(发送方:ToObject;
键盘可见:布尔;常量边界:TRect);
开始
memInput.Align:=memInput.Align.alClient;
结束;
过程TfrmEditor.FormVirtualKeyboard显示(发送方:ToObject;
键盘可见:布尔;常量边界:TRect);
开始
如果是memInput.Align memInput.Align.alTop,则
开始
memInput.Align:=memInput.Align.alTop;
memInput.Height:=memInput.Height-Bounds.Height;
结束;
结束;
问题 因此,我的问题是:每当显示虚拟键盘时,我切换到另一个应用程序并切换回来,虚拟键盘就会隐藏,但
TMemo
TAlignLayout
插件不会恢复到
alClient

如果有人能帮我解决这个
TMemo
和虚拟键盘问题,我将非常感激


提前谢谢你

您可以在活动的布局文件中使用
ScrollView
。这样,您可以上下滚动查看虚拟键盘隐藏的内容

下面是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:fillViewport="true">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="1">

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="75dp"
                android:text="Welcome!"
                android:id="@+id/textView"
                android:gravity="center"
                android:textColor="#33b5e5"
                android:textSize="35sp"/>

        </LinearLayout>  
    </LinearLayout>
</ScrollView>
当应用程序进入后台时调用此函数。 还有更多类似的函数,如onStart()、onResume、onRestart()、onStop()和onDestroy()。
他们的工作方式和他们的名字一样。

我想我应该补充一点,我正在使用Embarcadero RAD Studio开发我的应用程序。好吧,我对RAD Studio一无所知,我只知道Android Studio和Eclipse。很抱歉,Rohan。我认为添加FireMoneky标签可以清楚地知道我使用的是哪个IDE。无论如何,我计划很快开始使用Android Studio,所以你的解决方案并没有白费。
public void onPause()
{
    super.oPause();
}