添付の写真をご覧ください。 Twitterはそれをうまくやっています。それらにはレイアウトがあり、画面キーボードの真上に、より適切な用語がないためツールバーと呼びます。コードでこれを行うにはどうすればよいですか?
更新:これが私のレイアウトです:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="#ffffff">
<RelativeLayout Android:id="@+id/actionbarRelativeLayout" Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:background="@drawable/actionbar_gradient">
<ImageButton Android:id="@+id/imageButton" Android:layout_width="wrap_content" Android:background="@drawable/stocktwits" Android:layout_height="wrap_content"></ImageButton>
<TextView Android:layout_width="wrap_content" Android:id="@+id/charCountTextView" Android:text="140" Android:layout_alignParentRight="true" Android:layout_height="wrap_content" Android:textColor="#ffffff" Android:textStyle="bold" Android:textSize="18sp" Android:gravity="center_vertical" Android:layout_centerVertical="true"></TextView>
</RelativeLayout>
<EditText Android:layout_width="match_parent" Android:id="@+id/composeEditText" Android:focusable="true" Android:hint="Share an idea with the community" Android:gravity="left|top" Android:layout_height="fill_parent" Android:layout_weight="1"></EditText>
<LinearLayout Android:layout_width="match_parent" Android:id="@+id/border" Android:background="#c4c4c4" Android:baselineAligned="false" Android:layout_height="1dp"></LinearLayout>
<LinearLayout Android:layout_height="wrap_content" Android:id="@+id/toolbarLinearLayout" Android:orientation="horizontal" Android:padding="5dip" Android:layout_width="fill_parent" Android:background="@drawable/gray_toolbar_gradient">
<Button Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:id="@+id/shortenButton" Android:background="@drawable/shortenbutton" Android:layout_weight="0"></Button>
<LinearLayout Android:layout_height="match_parent" Android:layout_width="wrap_content" Android:id="@+id/linearLayout1" Android:layout_weight="1"></LinearLayout>
<CheckBox Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:id="@+id/twitterCheckBox" Android:textColor="#000000" Android:layout_weight="0" Android:background="@drawable/twittergraybutton"></CheckBox>
<Button Android:layout_height="wrap_content" Android:layout_weight="0" Android:id="@+id/sendButton" Android:layout_width="wrap_content" Android:background="@drawable/sharebutton"></Button>
</LinearLayout>
</LinearLayout>
そしてこれがsoftInputModeを指定するマニフェストです:
<activity Android:name="ShareActivity"
Android:theme="@Android:style/Theme.NoTitleBar"
Android:windowSoftInputMode="adjustResize">
</activity>
ソフト入力モードがadjustResizeに設定されている であることを確認してから、ツールバーを使用してレイアウトをアクティビティの下部に配置します。
例:
<LinearLayout Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<FrameLayout Android:id="@+id/my_content"
Android:layout_width="match_parent"
Android:layout_height="0dip"
Android:layout_weight="1">
<!-- Your content here -->
</FrameLayout>
<LinearLayout Android:id="@+id/my_toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<!-- Your toolbar items here -->
</LinearLayout>
</LinearLayout>
これは、adjustResizeを設定した後も機能しなかった人向けで、記事があります: adjustResizeはフルスクリーンでは機能しません
テーマをフルスクリーン以外のテーマに戻すと、レイアウトのサイズが必要に応じて変更されたので、実際にこれをフルスクリーンに設定しました。
重要追加上記の回答に。
DialogFragmentで作業する場合、フルスクリーンが適用されます暗黙的に。
つまり、次のことを行う必要があります。
1)DialogFragmentのonCreate()でスタイルを設定します。
public class YourDialogFragment extends DialogFragment {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, Android.R.style.Theme_Holo_NoActionBar);
}
}
2)独自のテーマを使用する場合は、次のように処理する必要があります。
<style name="AppTheme" parent="AppBaseTheme">
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowFullscreen">false</item>
</style>