Rejusting UI与candidateview自定义键盘可见(Rejusting UI wit

2019-06-26 20:12发布

我的工作。我已经设置setCandidatesViewShown(真)函数onCreateCandidatesView()custome键盘上,问题是犯规得到适当的调整了UI。

任何援助将不胜感激..下面是我做了什么

@Override 
public View onCreateCandidatesView() {      

    LayoutInflater li = (LayoutInflater) getApplicationContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View wordBar = li.inflate(R.layout.wordbar, null);
    LinearLayout ll = (LinearLayout) wordBar.findViewById(R.id.words);
    Button voiceCmd = (Button) wordBar.findViewById(R.id.voiceword);
    LinearLayout ll1 = null;
    Button voiceCmd1 = null;
    //comment this block in the event of showing only one keyboard so that we can only
    //one autocorrect bar
    if (isLargeScreen) {
        ll1 = (LinearLayout) wordBar.findViewById(R.id.words1);
        voiceCmd1 = (Button) wordBar.findViewById(R.id.voiceword1);
    }

    voiceCmd.setOnClickListener(voiceClickListener);

    mCandidateView = new CandidateView(this);
    mCandidateView.setService(this);
    setCandidatesViewShown(true);
    mCandidateView.setLayoutParams(new LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    ll.addView(mCandidateView);             

    return wordBar;

}

Answer 1:

我有同样的问题。 我发现后,答案由CED 这里 。

解决的办法是把它添加到你的输入法服务,

@Override public void onComputeInsets(InputMethodService.Insets outInsets) {
    super.onComputeInsets(outInsets);
    if (!isFullscreenMode()) {
        outInsets.contentTopInsets = outInsets.visibleTopInsets;
    }
}

这是故意的候选视图不向上推应用。 从文档 ,

需要注意的是,因为候选观点趋于显示和隐藏了很多,它不会以同样的方式作为软输入视图影响应用程序的用户界面:它会不会导致应用程序窗口大小调整,唯一的原因,如果需要对它们进行平移用户可以看到当前的焦点。

以上的黑客增加了“内容”区域包括候选视图区域。 对于文档onComputeInsets会帮助你理解这个概念。

计算有趣的插图到您的UI。 默认实现使用考生框架可见插图的顶部,并为内容的插图输入框的顶部。



文章来源: Rejusting UI with candidateview visible in custom keyboard