gpt4 book ai didi

java - 当键盘出现时使整个布局变小

转载 作者:行者123 更新时间:2023-11-29 22:36:10 25 4
gpt4 key购买 nike

我制作了一个用于创建新播放列表的新 fragment ,但是当您聚焦 EditText 时,下面的按钮不可见。设置“android:windowSoftInputMode="stateAlwaysHidden|adjustResize"”或仅设置“adjustResize”没有解决问题。

这是我的 fragment 布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/default_fullscreen_dialog"
android:orientation="vertical"
android:padding="24dp">


<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/object_create_playlist_dialog_title"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:layout_above="@id/dialog_cp_playlistname"/>

<EditText
android:id="@+id/dialog_cp_playlistname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:autofillHints=""
android:gravity="center_horizontal"
android:imeOptions="actionNext"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textColor="@color/white"
android:textCursorDrawable="@color/white_50"
android:textSize="35sp"
android:textStyle="bold"
app:backgroundTint="@color/white_50"
android:layout_centerVertical="true"/>

<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal"
android:stretchColumns="1,0"
android:layout_below="@id/dialog_cp_playlistname"
android:layout_centerVertical="true">

<TableRow >

<Button
android:id="@+id/dialog_cp_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:fontFamily="sans-serif-thin"
android:gravity="end|center_vertical"
android:paddingStart="0dp"
android:paddingEnd="25dp"
android:text="@string/object_cancel"
android:textColor="@color/white_70"
android:textSize="13sp"
android:textStyle="bold" />

<Button
android:id="@+id/dialog_cp_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:fontFamily="sans-serif-thin"
android:gravity="start|center_vertical"
android:paddingStart="25dp"
android:paddingEnd="0dp"
android:text="@string/object_next"
android:textColor="@color/accent_color"
android:textSize="13sp"
android:textStyle="bold" />

</TableRow>
</TableLayout>
</RelativeLayout>

这就是我在 fragment 中使用的样式:

<style name="AppTheme.Dialog">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:colorAccent">@color/accent_color</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowAnimationStyle">@style/WindowAnimationStyle</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">#ffffff</item>
</style>

<style name="AppTheme.Dialog.CreatePlaylist">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:colorAccent">@color/accent_color</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:textSelectHandleLeft">@drawable/null_shape</item>
<item name="android:textSelectHandleRight">@drawable/null_shape</item>
<item name="android:textSelectHandle">@drawable/null_shape</item>
</style>

我的应用程序:

My App My App with Keyboard

我想 (Spotify):

I would like to (Spotify) I would like to with Keyboard(Spotify)

我很乐意回答。

最佳答案

为将此 fragment 保存在 list 文件中的 Activity 添加以下属性

android:windowSoftInputMode="stateUnchanged|adjustResize"

示例

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<activity
android:name=".MainActivity"
android:windowSoftInputMode="stateUnchanged|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

如果不同的想法不起作用,请告诉我

EDIT

步骤:

  1. 继续使用 android:windowSoftInputMode="stateUnchanged|adjustResize" 作为之前提到过
  2. 将 fragment 布局包装在 ScrollViewNestedScrollView

它看起来像什么

这是一个与我合作的演示<​​/strong>

主 Activity

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

MainActivity 布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<fragment
android:id="@+id/fragment_container"
android:name="com.example.android.androidxtest.TempFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

主 fragment

public class MainFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, container, false);
}
}

MainFragment 布局

<?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">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/object_create_playlist_dialog_title"
android:textSize="20sp"
android:textStyle="bold" />

<EditText
android:id="@+id/dialog_cp_playlistname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center_horizontal"
android:imeOptions="actionNext"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:textSize="35sp"
android:textStyle="bold" />

<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal"
android:stretchColumns="1,0">

<TableRow>

<Button
android:id="@+id/dialog_cp_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/object_cancel"
android:textSize="13sp"
android:textStyle="bold" />

<Button
android:id="@+id/dialog_cp_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/object_next"
android:textSize="13sp"
android:textStyle="bold" />

</TableRow>
</TableLayout>
</LinearLayout>

</ScrollView>

希望这能奏效!

关于java - 当键盘出现时使整个布局变小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59492019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com