我尝试使用RecyclerView制作类似聊天的屏幕this
然而,RecyclerView(LinearLayoutManager)并不像我预期的那样工作...... 我该如何解决或避免这个问题?
此问题也可通过以下简单的活动重现。
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:scrollbars="none"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initializeRecyclerView();
}
private void initializeRecyclerView() {
RecyclerView recycler = (RecyclerView) findViewById(R.id.recyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
recycler.setLayoutManager(layoutManager);
Adapter recyclerAdapter = new Adapter(createItemList());
recycler.setAdapter(recyclerAdapter);
}
private static ArrayList<String> createItemList(){
ArrayList<String> items= new ArrayList<>();
for(int i=0;i<20;i++){
items.add(String.format("item %02d",20-i));
}
return items;
}
}
在this movie中显示隐藏IME候选人后, 未完全重新布局。
通过添加&#34; adjustResize&#34;修复此问题。进入MainActivity的windowSoftInputMode,但我不想使用它。需要解决方案而不更改windowSoftInputMode 。
答案 0 :(得分:0)
我有类似的问题。对您有用的是创建一个自定义适配器,它具有不同的视图和IMB候选的onbindview。然后,您可以通过更改LayoutView.Params并将高度设置为零来轻松隐藏IME候选项。这就是我做到这一点,听起来像一个解决方法,但对我有用。希望这会有所帮助。