【SoftKeyboard研究系列】Keyboard.Row研究

来源:互联网 发布:react.js starter kit 编辑:程序博客网 时间:2024/05/17 08:48

一、Keyboard.Row doc位置


本地:%ANDROID_HOME%/sdk/docs/reference/android/inputmethodservice/Keyboard.Row.html

Web:


二、Keyboard.Row doc内容


Added in API level 3
public static class

Keyboard.Row

extends Object
java.lang.Object   ↳android.inputmethodservice.Keyboard.Row

Class Overview


Container for keys in the keyboard. All keys in a row are at the same Y-coordinate. Some of the key size defaults can be overridden per row from what the Keyboard defines.

Summary


XML AttributesAttribute NameRelated MethodDescriptionandroid:horizontalGap Default horizontal gap between keys. android:keyHeight Default height of a key, in pixels or percentage of display width. android:keyWidth Default width of a key, in pixels or percentage of display width. android:keyboardMode Mode of the keyboard. android:rowEdgeFlags Row edge flags. android:verticalGap Default vertical gap between rows of keys. Fieldspublic intdefaultHeightDefault height of a key in this row.public intdefaultHorizontalGapDefault horizontal gap between keys in this row.public intdefaultWidthDefault width of a key in this row.public intmodeThe keyboard mode for this rowpublic introwEdgeFlagsEdge flags for this row of keys.public intverticalGapVertical gap following this row.Public ConstructorsKeyboard.Row(Keyboard parent)Keyboard.Row(Resources res, Keyboard parent, XmlResourceParser parser)[Expand]
Inherited Methods
From class java.lang.Object

XML Attributes


 

android:horizontalGap

Default horizontal gap between keys.

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol horizontalGap.

Related Methods

     

    android:keyHeight

    Default height of a key, in pixels or percentage of display width.

    May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

    May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

    This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

    This corresponds to the global attribute resource symbol keyHeight.

    Related Methods

       

      android:keyWidth

      Default width of a key, in pixels or percentage of display width.

      May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

      May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

      This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

      This corresponds to the global attribute resource symbol keyWidth.

      Related Methods

         

        android:keyboardMode

        Mode of the keyboard. If the mode doesn't match the requested keyboard mode, the row will be skipped.

        Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

        This corresponds to the global attribute resource symbol keyboardMode.

        Related Methods

           

          android:rowEdgeFlags

          Row edge flags.

          Must be one or more (separated by '|') of the following constant values.

          ConstantValueDescriptiontop4Row is anchored to the top of the keyboard.bottom8Row is anchored to the bottom of the keyboard.

          This corresponds to the global attribute resource symbol rowEdgeFlags.

          Related Methods

             

            android:verticalGap

            Default vertical gap between rows of keys.

            May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

            May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

            This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

            This corresponds to the global attribute resource symbol verticalGap.

            Related Methods

              Fields


               

              public int defaultHeight

              Added in API level 3

              Default height of a key in this row.

               

              public int defaultHorizontalGap

              Added in API level 3

              Default horizontal gap between keys in this row.

               

              public int defaultWidth

              Added in API level 3

              Default width of a key in this row.

               

              public int mode

              Added in API level 3

              The keyboard mode for this row

               

              public int rowEdgeFlags

              Added in API level 3

              Edge flags for this row of keys. Possible values that can be assigned are EDGE_TOP and EDGE_BOTTOM

               

              public int verticalGap

              Added in API level 3

              Vertical gap following this row.

              Public Constructors


               

              public Keyboard.Row (Keyboard parent)

              Added in API level 3

               

              public Keyboard.Row (Resources res, Keyboard parent, XmlResourceParser parser)

              Added in API level 3


              三、Keyboard.Row源码

               /**     * Container for keys in the keyboard. All keys in a row are at the same Y-coordinate.      * Some of the key size defaults can be overridden per row from what the {@link Keyboard}     * defines.      * @attr ref android.R.styleable#Keyboard_keyWidth     * @attr ref android.R.styleable#Keyboard_keyHeight     * @attr ref android.R.styleable#Keyboard_horizontalGap     * @attr ref android.R.styleable#Keyboard_verticalGap     * @attr ref android.R.styleable#Keyboard_Row_rowEdgeFlags     * @attr ref android.R.styleable#Keyboard_Row_keyboardMode     */    public static class Row {        /** Default width of a key in this row. */        public int defaultWidth;        /** Default height of a key in this row. */        public int defaultHeight;        /** Default horizontal gap between keys in this row. */        public int defaultHorizontalGap;        /** Vertical gap following this row. */        public int verticalGap;        ArrayList<Key> mKeys = new ArrayList<Key>();        /**         * Edge flags for this row of keys. Possible values that can be assigned are         * {@link Keyboard#EDGE_TOP EDGE_TOP} and {@link Keyboard#EDGE_BOTTOM EDGE_BOTTOM}           */        public int rowEdgeFlags;                /** The keyboard mode for this row */        public int mode;                private Keyboard parent;        public Row(Keyboard parent) {            this.parent = parent;        }                public Row(Resources res, Keyboard parent, XmlResourceParser parser) {            this.parent = parent;            TypedArray a = res.obtainAttributes(Xml.asAttributeSet(parser),                     com.android.internal.R.styleable.Keyboard);            defaultWidth = getDimensionOrFraction(a,                     com.android.internal.R.styleable.Keyboard_keyWidth,                     parent.mDisplayWidth, parent.mDefaultWidth);            defaultHeight = getDimensionOrFraction(a,                     com.android.internal.R.styleable.Keyboard_keyHeight,                     parent.mDisplayHeight, parent.mDefaultHeight);            defaultHorizontalGap = getDimensionOrFraction(a,                    com.android.internal.R.styleable.Keyboard_horizontalGap,                     parent.mDisplayWidth, parent.mDefaultHorizontalGap);            verticalGap = getDimensionOrFraction(a,                     com.android.internal.R.styleable.Keyboard_verticalGap,                     parent.mDisplayHeight, parent.mDefaultVerticalGap);            a.recycle();            a = res.obtainAttributes(Xml.asAttributeSet(parser),                    com.android.internal.R.styleable.Keyboard_Row);            rowEdgeFlags = a.getInt(com.android.internal.R.styleable.Keyboard_Row_rowEdgeFlags, 0);            mode = a.getResourceId(com.android.internal.R.styleable.Keyboard_Row_keyboardMode,                    0);        }    }

              四、Keyboard.Row研究

              0 0
              原创粉丝点击