我有一个布局,其中我有一个图像,textview,编辑框和一个按钮,所以每当键盘打开时,我希望我的屏幕向下滚动到按钮,以便用户可以随时键入并按下提交按钮。我通过使用scrollview做了这个,但我删除滚动视图做了一些更改,现在当我再次使用scrollview它不起作用。 这是代码,请检查。
layout_file:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
tools:context="myapp.anis.hotel.MainActivity"
android:background="@drawable/backgroundhotel"
android:fitsSystemWindows="true">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scroll">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Please share your feedback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView6"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@android:color/background_dark"
android:fontFamily="serif"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp" />
<TextView
android:text="@string/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/thanks"
android:shadowColor="@android:color/background_light"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColorHighlight="@android:color/background_dark"
android:textColor="@android:color/background_dark"
android:fontFamily="serif"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp" />
<ImageView
android:layout_width="wrap_content"
app:srcCompat="@drawable/hotellogo"
android:id="@+id/imageView"
android:layout_height="150dp"
android:layout_marginTop="15dp"
android:layout_below="@+id/thanks"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="match_parent"
android:ems="10"
android:maxLines="50"
android:background="@android:drawable/editbox_background"
android:layout_marginTop="15dp"
android:id="@+id/feedback"
android:hint="Enter FeedBack"
android:inputType="textMultiLine"
android:gravity="left"
android:textColorHint="@android:color/background_dark"
android:textColor="@android:color/background_dark"
android:textColorHighlight="@android:color/background_dark"
android:layout_below="@+id/textView6"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_height="180dp" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/submitting1"
android:background="@android:color/transparent"
android:onClick="onSubmit"
android:id="@+id/submit"
android:layout_below="@id/feedback"
android:layout_alignParentBottom="true"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
在我的主要活动中,我使用scrollto方法转到我的图片按钮。
public class MainActivity extends AppCompatActivity {
ImageButton submit;
EditText feedBack;
static public String saveFeedBack="";
ScrollView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
submit = (ImageButton) findViewById(R.id.submit);
feedBack = (EditText) findViewById(R.id.feedback);
view = (ScrollView) findViewById(R.id.scroll);
view.scrollTo(submit.getScrollX(),submit.getScrollY());
}
public void onSubmit(View view){
saveFeedBack = feedBack.getText().toString();
if(saveFeedBack.length() >=4) {
Intent intent = new Intent(this, Main3Activity.class);
startActivity(intent);
}
else{
Toast.makeText(getApplicationContext(),"Enter valid Feedback please.",Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onRestart() {
super.onRestart();
feedBack.setText("");
feedBack.setHint("Enter Feedback");
}
}
但是当我运行我的应用程序时,scrollview会滚动到我的编辑文本而不是我的按钮。我尝试过adjustResize,adjustPan和所有这些东西,但都没有。
答案 0 :(得分:0)
请在onCreate中使用以下代码:
view.postDelayed(new Runnable() {
@Override
public void run() {
view.fullScroll(ScrollView.FOCUS_DOWN);
}
},200);
希望它能帮助!!!