Статические фрагменты Android - проблема с падением приложения - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в Android, только изучаю концепцию статических фрагментов Android, но после запуска моего кода возникает проблема с зависанием приложения.Вот подробности:

MainActivity.java

package com.example.lalendrakumar.fragmentdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

activity_main.xml

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:weightSum="2">

<fragment
    android:id="@+id/fragment1"

    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" />
<fragment
    android:id="@+id/fragment2"


    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" />

Так что любой может решить мою проблему.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Вы не упомянули, какой макет вы используете, но я предполагаю, что вы используете LinearLayout.LinearLayout принимает ориентацию по горизонтали по умолчанию, и вы задали высоту и ширину для match_parent (fill_parent устарел и заменен на match_parent)

Более подробную информацию о LinearLayout можно найти по этой ссылке

Замените ваш код следующим

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="2">
<fragment
    android:id="@+id/fragment1"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />
<fragment
    android:id="@+id/fragment2"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

0 голосов
/ 16 октября 2018

попробуйте закомментировать эти строки в классе фрагмента (если они есть)

     /*  @Override
       public void onAttach(Context context) {
       if (context instanceof OnFragmentInteractionListener) {
          mListener = (OnFragmentInteractionListener) context;
      } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
      }
   }
 */
0 голосов
/ 16 октября 2018

Я предполагаю, что вы хотите, чтобы два фрагмента заполнили страницу.«fill_parent» был заменен на «match_parent».Однако, если вы используете это, теоретически два фрагмента будут накладываться друг на друга.

Чтобы разделить их на экране, каждый из них должен быть настроен на нулевую высоту.Вот как размеры каждого фрагмента должны читаться

android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...