我在xml中有一个类似于这样的数据库视图:
<LinearLayout
android:id="@+id/llTestMenuMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:id="@+id/rv" />
</LinearLayout>
字符串
并使用它来显示一个动态的按钮列表,如下所示:
int buttonFontSize = 20;
RecyclerView rv = findViewById(R.id.rv);
LinearLayoutManager llm = new LinearLayoutManager(this);
rv.setLayoutManager(llm);
adapter = new RVAdapter_ButtonList(tests, null, this, buttonFontSize);
rv.setAdapter(adapter);
rv.setVisibility(View.VISIBLE);
型
一切都很好,但现在所有垂直显示的按钮都将水平显示并按类别分组,因此我需要动态创建一个按钮视图,我从一个简单的例子开始,只有一个下一个方法没有成功,因为一个空白屏幕显示:
int buttonFontSize = 20;
RecyclerView rv = new RecyclerView(this);
RecyclerView.LayoutParams params = new
RecyclerView.LayoutParams(
RecyclerView.LayoutParams.MATCH_PARENT,
RecyclerView.LayoutParams.WRAP_CONTENT
);
rv.setLayoutParams(params);
LinearLayout llTestMenuMain = findViewById(R.id.llTestMenuMain);
llTestMenuMain.addView(rv);
LinearLayoutManager llm = new LinearLayoutManager(this);rv.setLayoutManager(llm);
adapter = new RVAdapter_ButtonList(tests, null, this, buttonFontSize);
rv.setAdapter(adapter);
rv.setVisibility(View.VISIBLE);
型
任何帮助,为什么我不能使动态创建的MaplerView工作将不胜感激。
编辑1:
我不知道它是否有任何帮助,但注意到动态创建RV适配器“onBindViewHolder”从未被调用(当然,itemCount > 0),当RV在XML中创建时会调用。无法找到解决方案...:(
编辑二:
还试图
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});
型
以防万一,也无济于事。
2条答案
按热度按时间o4hqfura1#
尝试将您的代码替换为以下代码:
字符串
o7jaxewo2#
我发现,将以编程方式创建的ScrollView放在ScrollView中,可以“神奇地”看到它。