强制全屏幕上的EditText在Android中(Force FullScreen on EditT

2019-07-17 14:06发布

我目前正在开发与三星Galaxy Tab 2的应用程序为我的设备。

我在XML代码:

<EditText
    android:id="@+id/analysis_text"
    style="@style/icon_text"
    android:imeOptions="actionDone"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked"
/>

当此代码执行时,全屏数据输入模式(摘录模式)仅在某些情况下自动触发。

我想我的用户得到一个完整的数据输入屏幕,而在此控件编辑文本,不管控制的屏幕或定位。

这个问题的另一种改写:如何强制进行的EditText框全屏数据输入模式在我的活动不管内容是什么?

Answer 1:

我解决了这个问题,没有真正解决,但找到有效的变通。

解决方法是,我设计了一个文本编辑器(它看起来类似于全屏UI),并在其中的每台的点击EditBox ES的新UI活动triggerred(与startActivityForResult()这样一旦他们完成控制交还给呼叫活动)和编辑完成后的文本传送回主屏幕。

我还确保了那些传送控制框不接受焦点,让他们立即控制移交给新的用户界面。

这样,我已经能够实现一个取消按钮,它现在实际上使用户可以回去,不保存,他意外地使得变化。

我愿意接受新的想法,但是这很适合我。

守则Activity

public void onBtnClicked(View v) {
    EditText current_text_box = (EditText) v;

    Intent intent = new Intent(ObservationActivity.this,
            TexteditorActivity.class);
    intent.putExtra("start_text", current_text_box.getText().toString());
    intent.putExtra("start_position", current_text_box.getSelectionStart());
    startActivityForResult(intent, v.getId());
} 

守则XML:

<EditText
    android:id="@+id/observation_text"
    style="@style/icon_text"
    android:focusable="false"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textMultiLine"
    android:onClick="onBtnClicked" >
</EditText>

要创建我使用的代码全屏UI,你可以使用任何类似( http://android-richtexteditor.googlecode.com/ )



Answer 2:

你可以试试这个

yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                yourEditText.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            }
        }
    });

你的父母布局进口的LayoutParams。 你的回答也将工作做好。



文章来源: Force FullScreen on EditText in Android