【问题标题】:how to scroll up layout when clicking on edit text单击编辑文本时如何向上滚动布局
【发布时间】:2013-01-31 05:40:32
【问题描述】:

这是我的软输入模式和没有软输入模式的布局。

但主要问题是,当我从倒数第二个编辑文本单击下一步时,我想显示这两个按钮并使用软输入模式最后编辑文本。请帮忙

我的xml文件如下

     <?xml version="1.0" encoding="utf-8"?>
     <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="@drawable/scroll_bg" >

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="521dp"
    android:layout_marginBottom="60dp"
    android:background="@drawable/bg" >

    <com.deemtech.widgets.MenuLayout
        android:id="@+id/menuTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/txtCustomerDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="140dp"
        android:gravity="center"
        android:text="@string/customer_details"
        android:textColor="#ffffff"
        android:textSize="12sp" />

    <EditText
        android:id="@+id/editNameCustomerDetails"
        style="@style/EditText"
        android:layout_below="@+id/txtCustomerDetails"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="12dp"
        android:ems="10"
        android:hint="NAME"
        android:inputType="text" />

    <RelativeLayout
        android:id="@+id/innerLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="25dp"
        android:layout_marginTop="190dp"
        android:background="@drawable/bg_create_account1x"
        android:gravity="center"
        android:paddingBottom="5dp"
        android:paddingLeft="25dp"
        android:paddingRight="25dp"
        android:paddingTop="8dp" >

        <EditText
            android:id="@+id/editEmailCustomerDetails"
            style="@style/EditText"
            android:layout_alignLeft="@+id/editPhoneCutomerDetails"
            android:layout_alignParentTop="true"
            android:layout_marginTop="52dp"
            android:ems="10"
            android:hint="EMAIL ADDRESS"
            android:inputType="textEmailAddress" />

        <EditText
            android:id="@+id/editPhoneCutomerDetails"
            style="@style/EditText"
            android:layout_below="@+id/editEmailCustomerDetails"
            android:layout_marginTop="8dp"
            android:ems="10"
            android:hint="CONTACT NUMBER"
            android:maxLength="12"
            android:inputType="phone" />

        <!--
        <EditText
            android:id="@+id/editAdditionalInfo"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_alignLeft="@+id/editPhoneCutomerDetails"
            android:layout_alignRight="@+id/editPhoneCutomerDetails"
            android:layout_below="@+id/editPhoneCutomerDetails"
            android:layout_marginBottom="60dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/message_additional_box1x"
            android:ems="10"
            android:hint="ADDITIONAL INFO"
            android:inputType="text"
            android:padding="10dp"
            >

            <requestFocus />
        </EditText>
        -->

        <EditText
            android:id="@+id/editAdditionalInfo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editPhoneCutomerDetails"
            android:layout_alignParentBottom="true"
            android:layout_alignRight="@+id/editPhoneCutomerDetails"
            android:layout_below="@+id/editPhoneCutomerDetails"
            android:layout_marginBottom="60dp"
            android:layout_marginTop="8dp"
            android:hint="ADDITIONAL INFO"
            android:background="@drawable/message_additional_box1x"
            android:ems="10"
            android:singleLine="true"
            android:gravity="top"
            android:lines="3"
            android:padding="10dp"
            android:width="150dp" >

            <requestFocus />
        </EditText>
    </RelativeLayout>

    <Button
        android:id="@+id/btnBackCustomerDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="448dp"
        android:layout_toLeftOf="@+id/btnSubmitCustomerDetails"
        android:background="@drawable/btn_back"
        android:contentDescription="@string/app_name" />

    <Button
        android:id="@+id/btnSubmitCustomerDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/editNameCustomerDetails"
        android:layout_marginTop="448dp"
        android:background="@drawable/btn_submit"
        android:contentDescription="@string/app_name" />
</RelativeLayout>

 </ScrollView>

【问题讨论】:

  • 您需要提供当前xml进行检查。基本上你需要重新设计你的布局。
  • 我在这里添加了我的 xml 文件

标签: android android-layout


【解决方案1】:

在您的情况下,您不能简单地“调整大小”窗口。此外,您只想在单击最后一个编辑文本时显示按钮。

因此,您可以尝试这种方法,虽然不是真正建议的,但适用于您的场景:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mainf);


    findViewById(R.id.editAdditionalInfo).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(sampleMediaPlayer.this, "text", 700).show();
            findViewById(R.id.btnBackCustomerDetails).requestFocusFromTouch();
            findViewById(R.id.editAdditionalInfo).requestFocusFromTouch();
        }
    });
}

【讨论】:

  • 非常感谢先生.. 非常感谢你。你不知道它对我有多大帮助。
【解决方案2】:

检查这个link

manifest 文件中的活动中尝试此android:windowSoftInputMode="adjustResize"

【讨论】:

  • 这在我的情况下不起作用。它仍然隐藏我的按钮.. :(
  • 好的。而不是改变布局设计。或者如果您可以尝试这个 android:layout_height="match_parent" 到 RelativeLayout 并给它一个修复 ID。也许它适合你。
【解决方案3】:

在 nimish 的回答的帮助下,我终于得到了我想要的东西

    editPhoneCustomerDetails.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER)) {

                findViewById(R.id.btnBackCustomerDetails).requestFocusFromTouch();
                findViewById(R.id.editAdditionalInfo).requestFocusFromTouch();
                //((ScrollView) findViewById(R.id.scrollView)).fullScroll(View.FOCUS_DOWN);

                //findViewById(R.id.editPhoneCutomerDetails).requestFocusFromTouch();

               // findViewById(R.id.btnBackCustomerDetails).requestFocusFromTouch(); 
            }
    return false;
        }
    });

    findViewById(R.id.editAdditionalInfo).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //findViewById(R.id.btnBackCustomerDetails).setFocusable(true);
            findViewById(R.id.btnBackCustomerDetails).requestFocusFromTouch();
            findViewById(R.id.editAdditionalInfo).requestFocusFromTouch();
        }

    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2018-02-03
    相关资源
    最近更新 更多