添加ListView之外的视图



我在尝试创建一个简单的ListView时遇到问题。这就是我想要的:一个只有1个ListView的活动,里面有文本(以及接下来步骤中的按钮(,旁边有一个(或多个(按钮。

因此,在我的XML中,我有一个ListView、一个TextView(在ListView的子级中的那个(和一个按钮(我不希望在ListView中出现的那个(。当我用午餐吃我的应用程序时,我的列表中有我活动的所有视图View。。。我不知道该在哪里处理。

这是我的代码:我的活动:

ListView listView = findViewById(R.id.MainListDecks);
AdapterDeck adpDeck;
ArrayList<Deck> myDecks = new ArrayList<>();
for (int i = 0; i<5;i++){
myDecks.add(new Deck("Deck " + i));
}
adpDeck = new AdapterDeck(this, 0, myDecks);
listView.setAdapter(adpDeck);

我的适配器:

public AdapterDeck(@NonNull Context context, int resource, @NonNull 
ArrayList<Deck> decks) {
super(context, resource, decks);
this.decks = decks;
this.context = context;
}
@Override
public View getView(final int position, View convertView, ViewGroup 
parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.activity_main, null);
}
TextView listItemText = view.findViewById(R.id.MainDeckNom);
listItemText.setText(decks.get(position).getNom())
return view;
}

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Background"
tools:context="activities.MainMenu">
<ListView
android:id="@+id/MainListDecks"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/MainDeckNom"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="20dp"
android:layout_marginBottom="22dp"
android:text="Button" />
</RelativeLayout>

结果:我得到的结果,我不想要

感谢任何能提供帮助的人!

干杯

它们不在您的ListView中,它们在it之上。

根布局是RelativeLayout。RelativeLayout允许孩子们重叠。如果你想要一个右下角有按钮、底部有文本的ListView,你应该使用LinearLayout和FrameLayout。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Background"
android:orientation="vertical"
tools:context="activities.MainMenu">
<ListView
android:id="@+id/MainListDecks"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/MainDeckNom"
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_gravity="center"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginBottom="22dp"
android:text="Button" 
android:layout_gravity="center_vertical|end"
/>
</FrameLayout>
</LinearLayout>

最新更新