如何使这个Android布局更“响应”?

时间:2016-09-20 18:40:02

标签: android

我有一个带有一些标题栏和一些输入字段的android布局,当我尝试输入一些值时,我可以做到,但是

  1. 标题栏消失
  2. 如果我想编辑“另一个号码”字段,我无法向下滚动以使用SeekBar
  3. 如何更改布局以使其成为

    1. 让标题栏(文本“InputExample”)始终修复
    2. 屏幕的其他内容是否可滚动(例如,我可以使用SeekBar)?
    3. 布局在这里:

      <FrameLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
          xmlns:ads="http://schemas.android.com/apk/res-auto"
          android:orientation="vertical"
          android:fitsSystemWindows="true"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
      
      
          <RelativeLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#cccccc"
              android:layout_marginBottom = "0dp">
      
      
              <GridLayout
                  android:id="@+id/grid"
                  android:layout_margin="30dp"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_alignParentTop="true"
                  android:layout_above="@+id/new_cancel"
                  android:alignmentMode="alignBounds"
                  android:columnCount="10"
                  android:columnOrderPreserved="false"
                  android:useDefaultMargins="true">
      
                  <TextView
                      android:id="@+id/textTitleEdit"
                      android:layout_column="0"
                      android:layout_columnSpan="10"
                      android:layout_gravity="center_horizontal"
                      android:layout_row="0"
                      android:text="My Title"
                      android:textSize="32dip"/>
      
                  <TextView
                      android:text="You can enter some values"
                      android:textSize="16dip"
                      android:layout_columnSpan="8"
                      android:layout_gravity="left"
                      android:id="@+id/textSubTitleEdit"
                      android:layout_row="1"
                      android:layout_column="0" />
      
                  <TextView
                      android:text="Name"
                      android:layout_gravity="right"
                      android:layout_row="2"
                      android:layout_column="0"
                      />
                  <EditText
                      android:ems="7"
                      android:singleLine="true"
                      android:inputType="textCapWords"
                      android:id="@+id/new_name"
                      android:layout_row="2"
                      android:layout_column="1" />
      
      
      
      
                  _____________
      
                  <TextView
                      android:text="Label"
                      android:layout_gravity="right"
                      android:layout_row="3"
                      android:layout_column="0" />
      
      
      
                  <EditText
                      android:ems="7"
                      android:singleLine="true"
                      android:inputType="textCapWords"
                      android:id="@+id/new_label"
                      android:layout_row="3"
                      android:layout_column="1" />
      
                  ______
      
                  <TextView
                      android:layout_column="0"
                      android:text="Put in a number"
                      android:layout_gravity="right"
                      />
      
                  <EditText
                      android:ems="7"
                      android:singleLine="true"
                      android:id="@+id/new_price"
                      android:inputType="numberDecimal"
                      android:layout_row="4"
                      android:layout_column="1" />
      
      
      
                  <TextView
                      android:layout_column="0"
                      android:text="Another number"
                      android:layout_gravity="right"
                      android:layout_row="5" />
      
                  <EditText
                      android:ems="7"
                      android:singleLine="true"
                      android:id="@+id/new_offset"
                      android:inputType="number"
                      android:layout_row="5"
                      android:layout_column="1" />
      
                  <SeekBar
                      android:id="@+id/seek_offset"
                      style="@android:style/Widget.Holo.SeekBar"
                      android:layout_width="150dp"
                      android:layout_column="1"
                      android:layout_row="6"
                      android:max="20"/>
      
      
                  <TextView
                      android:text="Comment"
                      android:layout_gravity="right"
                      android:layout_row="7"
                      android:layout_column="0" />
      
      
      
                  <EditText
                      android:ems="7"
                      android:singleLine="true"
                      android:inputType="textCapWords"
                      android:id="@+id/new_comment"
                      android:layout_row="7"
                      android:layout_column="1" />
      
              </GridLayout>
      
              <Button
                  android:id="@+id/new_cancel"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentBottom="true"
                  android:layout_alignParentStart="true"
                  android:background="#aaaaaa"
                  android:text="Cancel"
                  android:layout_margin="5dp"
                  />
      
              <Button
                  android:id="@+id/new_ok"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_alignParentBottom="true"
                  android:layout_alignParentEnd="true"
                  android:background="#dddddd"
                  android:text="Ok"
                  android:layout_margin="5dp"
                  />
      
          </RelativeLayout>
      
      </FrameLayout>
      

1 个答案:

答案 0 :(得分:1)

您的原始布局遇到了一些问题,所以我已经修好了,我觉得这个解决方案应该可行。布局预览中的所有内容都正确定位,所以当您在模拟器中使用它时,它应该可以正常工作。

我个人更喜欢在我的大多数布局中使用LinearLayouts和权重,我知道其他一些人更喜欢RelativeLayouts。

基本上你应该看看你想要用某种布局滚动你想要滚动的部分,然后ScrollView包含这个布局,以便它可以滚动。这就是为什么我从GridLayout中删除了标题和副标题。

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#cccccc"
android:weightSum="6">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="2.5"
    android:orientation="vertical"
    android:gravity="bottom|center_horizontal">

    <TextView
        android:id="@+id/textTitleEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="My Title"
        android:textSize="32dip"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="You can enter some values"
        android:textSize="16dip"
        android:layout_gravity="center_horizontal"
        android:id="@+id/textSubTitleEdit"/>

</LinearLayout>

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <GridLayout
            android:id="@+id/grid"
            android:layout_margin="30dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:alignmentMode="alignBounds"
            android:columnCount="10"
            android:columnOrderPreserved="false"
            android:useDefaultMargins="true">

            <TextView
                android:text="Name"
                android:layout_gravity="right"
                android:layout_row="2"
                android:layout_column="0"/>

            <EditText
                android:ems="7"
                android:singleLine="true"
                android:inputType="textCapWords"
                android:id="@+id/new_name"
                android:layout_row="2"
                android:layout_column="1"/>

            <TextView
                android:text="Label"
                android:layout_gravity="right"
                android:layout_row="3"
                android:layout_column="0"/>

            <EditText
                android:ems="7"
                android:singleLine="true"
                android:inputType="textCapWords"
                android:id="@+id/new_label"
                android:layout_row="3"
                android:layout_column="1" />

            <TextView
                android:layout_column="0"
                android:text="Put in a number"
                android:layout_gravity="right"
                />

            <EditText
                android:ems="7"
                android:singleLine="true"
                android:id="@+id/new_price"
                android:inputType="numberDecimal"
                android:layout_row="4"
                android:layout_column="1" />

            <TextView
                android:layout_column="0"
                android:text="Another number"
                android:layout_gravity="end"
                android:layout_row="5" />

            <EditText
                android:ems="7"
                android:singleLine="true"
                android:id="@+id/new_offset"
                android:inputType="number"
                android:layout_row="5"
                android:layout_column="1" />

            <SeekBar
                android:id="@+id/seek_offset"
                style="@android:style/Widget.Holo.SeekBar"
                android:layout_width="150dp"
                android:layout_column="1"
                android:layout_row="6"
                android:max="20"/>

            <TextView
                android:text="Comment"
                android:layout_gravity="right"
                android:layout_row="7"
                android:layout_column="0" />

            <EditText
                android:ems="7"
                android:singleLine="true"
                android:inputType="textCapWords"
                android:id="@+id/new_comment"
                android:layout_row="7"
                android:layout_column="1" />

        </GridLayout>

</ScrollView>

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="2.5"
        android:gravity="bottom|center_horizontal"
        android:weightSum="2">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="start"
            android:layout_weight="1">

            <Button
                android:id="@+id/new_cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity=""
                android:background="#aaaaaa"
                android:text="Cancel"
                android:layout_margin="5dp"/>

        </RelativeLayout>


        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="end"
            android:layout_weight="1">

            <Button
                android:id="@+id/new_ok"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#dddddd"
                android:text="Ok"
                android:layout_margin="5dp"/>

        </RelativeLayout>

    </LinearLayout>