フラグメント内のボタンをクリックして、ビュー/コンテナを複数回膨張させるにはどうすればよいですか?

RobFromFla:

これはStackOverflowに関する私の最初の投稿です。このサイトはこれまでのところ命の恩人です。

私はこれにかなり慣れており、これまでのところ問題を解決することができましたが、この問題はここで解決できません。

私はフラグメント(私はこれが初めてです)の内部で作業しています。私はこのフラグメント内の既存のコンテナーを(ビューについてはあまり知りませんが)インフレさせようとしています。私はこれを正しく説明しているといいのですが。

コンテキスト:壁の面積や長さなどを計算するために、ユーザーからいくつかの測定値(およびその他の変数)を取得しようとしています。ユーザーは、ボタンをクリックして「壁を追加」できます。これは既存のレイアウトから膨張するだけです。

異なるライフサイクル(onCreatevs onCreatedViewなど)でコードを移動してみました私はまたLayoutInflator、さまざまなパラメーターを渡してみました(親ビュー、attachToRootをfalse、trueなどに設定)。

CalculatorActivity.java

    public class CalculatorActivity extends AppCompatActivity {

      //...

      private FragmentNewCalc fragmentNewCalc;    

      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calculator);
        fragmentNewCalc = new FragmentNewCalc();
        //Replace Containers
        getSupportFragmentManager().beginTransaction()
          .replace(R.id.container_wrap, fragmentNewCalc)
          .commit();
    }
}

これはこのXMLで膨張します->

<FrameLayout
    android:id="@+id/container_wrap"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

FragmentNewCalc.java


      LinearLayout wallContainer;
      LinearLayout test; //testing with LinearLayout
      CardView newWallCard; //this is what I want to use though


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

        wallContainer = (LinearLayout) v.findViewById(R.id.new_wall_container);
         //LayoutInflater inflater2; //testing
        //inflater2 = getLayoutInflater();
        //newWallCard = (CardView) inflater.inflate(R.layout.frag_new_walls, container, false);
        test = (LinearLayout) inflater.inflate(R.layout.wall_add_section, null); //tested this wallContainer as parent view and true/false   

        fab_add_wall = (FloatingActionButton) v.findViewById(R.id.fab_add_wall);


        fab_add_wall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                wallContainer.addView(test);


            }
        });


        return v;
    }
}

これがインフレが発生する場所です:(CoordinatorLayout、Scrollviewなどの大きなレイアウトの一部)

    <LinearLayout
        android:id="@+id/new_wall_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

初めてボタンをクリックしたとき、ユーザーインターフェイスは膨張したレイアウトを正常に追加します(意図したとおりに機能します)が、連続してクリックするとエラーが発生します。

java.lang.IllegalStateException:指定された子にはすでに親があります。最初に、子の親でremoveView()を呼び出す必要があります。

もちろん、そのビューは削除したくありませんが、追加し続けたいと思います。傷の頭

すべてをフラグメントに変更し始める前に、これを機能させていました。つまり、私は今、フラグメントの中にいるという事実に関係しているのではないでしょうか。

私はこれを理解するために一日中過ごしました。私はFragmentsで作業を始めたばかりか、それがに対する理解の欠如であるので、私のロジックに欠陥があるかどうかはわかりませんLayoutInflatorおそらく両方です。O :-)

Md。Asaduzzaman:

onClick内で、ビューを膨らませてください

public void onClick(View v) { 

    inflater.inflate(R.layout.wall_add_section, wallContainer, true);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

別のフラグメントのボタンをクリックして、あるフラグメントのリストビューに行を追加するにはどうすればよいですか?

分類Dev

メインアクティビティのボタンをクリックして、ビューページャーのすべてのフラグメントからチェックボックスの値を取得するにはどうすればよいですか?

分類Dev

ビューをフラグメントで膨らませるにはどうすればよいですか?

分類Dev

スタックビューを使用してボタンをコンテナの中央に配置するにはどうすればよいですか?

分類Dev

リストビュー内でクリックされたトグルボタンの位置を取得するにはどうすればよいですか?

分類Dev

データグリッドビューを使用せずにコンボボックスにバインドされているデータテーブルのデータを編集するにはどうすればよいですか?

分類Dev

最初のフラグメントのボタンをクリックして、あるフラグメントから別のフラグメントにメッセージを送信するにはどうすればよいですか?

分類Dev

ナビゲーションコントローラーを使用して戻るボタンを押した後に前のフラグメントが表示されないようにするにはどうすればよいですか?

分類Dev

ASP.NET Webフォームのグリッドビューでファイルのダウンロードを開始するイメージボタンをユーザーが複数回クリックしないようにするにはどうすればよいですか?

分類Dev

拡張可能なリストビューの選択した子ビューデータをフラグメントから親アクティビティに送信するにはどうすればよいですか?

分類Dev

フラグメント内でonBackPressed()を使用してWebビューをバックアップするにはどうすればよいですか?

分類Dev

リサイクラービューを使用してフローティングアクションボタンメニューの動作を作成するにはどうすればよいですか?

分類Dev

クリックリッスンのボタンをフラグメントで宣言してアクティビティに切り替えるにはどうすればよいですか?

分類Dev

フラグメントからボタンを使用してアクティビティを開始するにはどうすればよいですか?

分類Dev

ブートストラップのドキュメントからこのカスタムオフキャンバスナビゲーションを外側でクリックして閉じるにはどうすればよいですか?

分類Dev

ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

分類Dev

ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

分類Dev

プログラムで作成されたコンテンツビューを使用して、アクティビティにフラグメントを追加するにはどうすればよいですか。

分類Dev

刺激コントローラー:イベントは複数回リッスンされました。イベントリスナーを削除してコンテキストを保持するにはどうすればよいですか?

分類Dev

ナビゲーターの戻るボタンをクリックさせないようにするにはどうすればよいですか?

分類Dev

スクリプトを使用して<a>タグ内のリンクをナビゲートするにはどうすればよいですか?

分類Dev

複数のselect2ボックスを使用してテーブルをフィルタリングするにはどうすればよいですか?

分類Dev

サービスコンテナを介してコンストラクタにパラメータを渡すにはどうすればよいですか?

分類Dev

ナビゲーションアーキテクチャコンポーネントを使用して、動的機能モジュールのフラグメントのリリースビルドでClassNotFoundExceptionを修正するにはどうすればよいですか?

分類Dev

(ナビゲーションアーキテクチャコンポーネントの)NavHostFragmentによってロードされたフラグメント(SupportMapFragment)の参照を取得するにはどうすればよいですか?

分類Dev

テーブルビューSwiftで2つのボタンを押してラベル値をインクリメント/デクリメントするにはどうすればよいですか?

分類Dev

フラグメントとアクティビティをビューページャーに追加して、フラグメントがスワイプで表示されるようにするにはどうすればよいですか?

分類Dev

フレックスボックスを使用してすべての要素をコンテナ内に保持するにはどうすればよいですか?

分類Dev

インスタンスに対してOracleCloudが提供するコンピューティングメトリック以外のメトリック(スレッド数、ハンドル数)を取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    別のフラグメントのボタンをクリックして、あるフラグメントのリストビューに行を追加するにはどうすればよいですか?

  2. 2

    メインアクティビティのボタンをクリックして、ビューページャーのすべてのフラグメントからチェックボックスの値を取得するにはどうすればよいですか?

  3. 3

    ビューをフラグメントで膨らませるにはどうすればよいですか?

  4. 4

    スタックビューを使用してボタンをコンテナの中央に配置するにはどうすればよいですか?

  5. 5

    リストビュー内でクリックされたトグルボタンの位置を取得するにはどうすればよいですか?

  6. 6

    データグリッドビューを使用せずにコンボボックスにバインドされているデータテーブルのデータを編集するにはどうすればよいですか?

  7. 7

    最初のフラグメントのボタンをクリックして、あるフラグメントから別のフラグメントにメッセージを送信するにはどうすればよいですか?

  8. 8

    ナビゲーションコントローラーを使用して戻るボタンを押した後に前のフラグメントが表示されないようにするにはどうすればよいですか?

  9. 9

    ASP.NET Webフォームのグリッドビューでファイルのダウンロードを開始するイメージボタンをユーザーが複数回クリックしないようにするにはどうすればよいですか?

  10. 10

    拡張可能なリストビューの選択した子ビューデータをフラグメントから親アクティビティに送信するにはどうすればよいですか?

  11. 11

    フラグメント内でonBackPressed()を使用してWebビューをバックアップするにはどうすればよいですか?

  12. 12

    リサイクラービューを使用してフローティングアクションボタンメニューの動作を作成するにはどうすればよいですか?

  13. 13

    クリックリッスンのボタンをフラグメントで宣言してアクティビティに切り替えるにはどうすればよいですか?

  14. 14

    フラグメントからボタンを使用してアクティビティを開始するにはどうすればよいですか?

  15. 15

    ブートストラップのドキュメントからこのカスタムオフキャンバスナビゲーションを外側でクリックして閉じるにはどうすればよいですか?

  16. 16

    ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

  17. 17

    ASP.NET MVC-ビュー内からコントローラーメソッドを呼び出して、他の複数のビューにリダイレクトするにはどうすればよいですか?

  18. 18

    プログラムで作成されたコンテンツビューを使用して、アクティビティにフラグメントを追加するにはどうすればよいですか。

  19. 19

    刺激コントローラー:イベントは複数回リッスンされました。イベントリスナーを削除してコンテキストを保持するにはどうすればよいですか?

  20. 20

    ナビゲーターの戻るボタンをクリックさせないようにするにはどうすればよいですか?

  21. 21

    スクリプトを使用して<a>タグ内のリンクをナビゲートするにはどうすればよいですか?

  22. 22

    複数のselect2ボックスを使用してテーブルをフィルタリングするにはどうすればよいですか?

  23. 23

    サービスコンテナを介してコンストラクタにパラメータを渡すにはどうすればよいですか?

  24. 24

    ナビゲーションアーキテクチャコンポーネントを使用して、動的機能モジュールのフラグメントのリリースビルドでClassNotFoundExceptionを修正するにはどうすればよいですか?

  25. 25

    (ナビゲーションアーキテクチャコンポーネントの)NavHostFragmentによってロードされたフラグメント(SupportMapFragment)の参照を取得するにはどうすればよいですか?

  26. 26

    テーブルビューSwiftで2つのボタンを押してラベル値をインクリメント/デクリメントするにはどうすればよいですか?

  27. 27

    フラグメントとアクティビティをビューページャーに追加して、フラグメントがスワイプで表示されるようにするにはどうすればよいですか?

  28. 28

    フレックスボックスを使用してすべての要素をコンテナ内に保持するにはどうすればよいですか?

  29. 29

    インスタンスに対してOracleCloudが提供するコンピューティングメトリック以外のメトリック(スレッド数、ハンドル数)を取得するにはどうすればよいですか?

ホットタグ

アーカイブ