向片段添加两个ListView



我正在为我在学校的项目做一个android时间管理应用程序。因此,有一个名为"活动"的类,它代表用户一天中所做的活动(如上学、听音乐、吃饭等)。活动对象有一个名为done的即时变量,它是布尔类型,还有一个insant变量Tags,它是Tag数组。需要布尔完成,因为用户可以输入未来的活动,稍后他/她可以将其标记为完成。标签类用于用户标记他们的活动(例如,一个活动可以同时有标签:运动和爱好)。用户输入到程序中的这些活动显示在一个名为activities fragment的片段中。在这个片段中将有两个不同的Listview,一个用于done,另一个用于unded活动。所以我编写了我的xml代码,这样它就可以有两个列表视图,并将这个列表视图添加到我的片段中。然而,当我运行代码时,我只能看到其中一个Listview,另一个不会显示。这就是我的xml文件的样子:(这是设计的图片:http://postimg.org/image/a7u1ynfzb/)

<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:orientation="vertical"
tools:context="com.beter.timehole.fragment.ActivitiesFragment">
<!-- TODO: Update blank fragment layout -->

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/listView1"
     />
<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:id="@+id/listView2"
     />
</LinearLayout>

这是我的片段类代码:

public class ActivitiesFragment extends Fragment {
public ActivitiesFragment() {
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ArrayList<Tag> tags1= new ArrayList<Tag>();
    tags1.add(new Tag("Tag1"));
    ArrayList<Tag> tags2= new ArrayList<Tag>();
    tags2.add(new Tag("Tag2"));
    com.beter.timehole.core.Activity doneSample = new com.beter.timehole.core.Activity("Work",true,70,"16 50","17 00",tags1,"did it");
    com.beter.timehole.core.Activity undoneSample = new com.beter.timehole.core.Activity("Fun",false,30,"13 30","14 00",tags2,"will do it");
    View rootView = inflater.inflate(R.layout.activity_fragment, container, false);
    ArrayList<com.beter.timehole.core.Activity> doneActivities = new ArrayList<com.beter.timehole.core.Activity>();
    doneActivities.add(doneSample);
    ListView doneList = (ListView) rootView.findViewById(R.id.listView1);
    doneList.setAdapter(new ArrayAdapter<com.beter.timehole.core.Activity>(getActivity(), R.layout.support_simple_spinner_dropdown_item, doneActivities));
    ArrayList<com.beter.timehole.core.Activity> undoneActivities = new ArrayList<com.beter.timehole.core.Activity>();
    undoneActivities.add(undoneSample);
    ListView undoneList = (ListView) rootView.findViewById(R.id.listView2);
    undoneList.setAdapter(new ArrayAdapter<com.beter.timehole.core.Activity>(getActivity(),R.layout.support_simple_spinner_dropdown_item,undoneActivities));
    return rootView;
}
}

尝试更改layout_height="0dp"。

请尝试此布局代码。

`

<!-- TODO: Update blank fragment layout -->

<ListView
    android:id="@+id/listView1"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1" />
<ListView
    android:id="@+id/listView2"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1" />

`

如果这不起作用,请尝试检查您的代码或将完整的代码放在此处。

请尝试此

<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:orientation="vertical"
tools:context="com.beter.timehole.fragment.ActivitiesFragment">
        <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/listView1"
         />
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:id="@+id/listView2"
         /></LinearLayout>

最新更新