Android无法在屏幕上显示两个片段

时间:2015-09-23 19:43:59

标签: android android-fragments

我有两个片段:第一个是editText,其中suer可以键入文本,第二个是他们键入的内容列表。

我试图让两个片段出现,但不能让我的生活让他们去。如果我想要bot而不是两者,我可以通过它自己显示编辑文本。

如果有人可以提供帮助,我会非常感激,我认为我某处有一些愚蠢的错误。

<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"
    tools:context="---.ListFragment"
    android:orientation="vertical">

    <ListView
        android:id="@+id/myListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout >
<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"
    tools:context="---.InsertFragment"
    android:orientation="vertical">

    <EditText
        android:id="@+id/myEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/addItemHint" />

</LinearLayout >
<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=".TodoListActivity">

    <fragment
        android:id="@+id/insertFragment"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        class="---.InsertFragment" >
    </fragment>
    <fragment
        android:id="@+id/listFragment"
        android:layout_width="match_parent"
        android:layout_weight="2"
        android:layout_height="wrap_content"
        class="---.ListFragment" >
    </fragment>

</LinearLayout>
public class TodoListActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_todo_list);
    }
}
public class ListFragment extends Fragment {

    ArrayList<String> todoItems = null;
    ArrayAdapter<String> aa = null;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_list, container, false);

        todoItems = new ArrayList<String>();
        aa = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1, todoItems);

        ListView myListView = (ListView) view.findViewById(R.id.myListView);
        myListView.setAdapter(aa);
        return view;
    }

    public void addItem(String item) {
        todoItems.add(0, item);
        aa.notifyDataSetChanged();
    }

}

2 个答案:

答案 0 :(得分:0)

您应该删除两个片段的权重属性。添加新待办事项时,权重会导致InsertFragment被部分推到屏幕的可见部分之外。

答案 1 :(得分:0)

std::vector<Table> tables = room.get_contents(Room::TABLE); std::vector<Chair> chairs = room.get_contents(Room::CHAIR); 放入您的片段代码而不是android:layout_width="match_parent"。因为,android:layout_height="wrap_content"不起作用。

Here是一个很好的教程。