フラグメントがデフォルトで表示されますが、このボタンをクリックするまで、フラグメントを非表示にする必要がありました。私が経験している問題は、このボタンをクリックするとフラグメントが表示されないことです。私は断片になると完全な初心者です。私の主な活動でフラグメントはonButtonClickで表示されません
マイコード:
package com.example.julian.tutorial_fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity implements TopSectionFragment.TopSectionListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View frag = findViewById(R.id.fragment3);
frag.setVisibility(View.GONE);
}
//This gets called by the TopFragment when the user clicks the button
@Override
public void createMeme(String top, String bottom) {
BottomPictureFragment bottomFragment = (BottomPictureFragment)getSupportFragmentManager().findFragmentById(R.id.fragment2);
bottomFragment.setMemeText(top, bottom);
}
//this is the onButtonClick
public void sample(View view) {
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment_Search hello = new Fragment_Search();
fragmentTransaction.add(R.id.fragment3, hello, "HELLO");
fragmentTransaction.commit();
}
}
マイFragment_Searchにおけるコード:
package com.example.julian.tutorial_fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by Julian on 8/17/2017.
*/
public class Fragment_Search extends Fragment {
public interface Fragment_SearchInterface {
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.sample_layout, container, false);
return view;
}
}
マイactivity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.julian.tutorial_fragment.MainActivity">
<RelativeLayout
android:layout_width="377dp"
android:layout_height="498dp"
tools:layout_editor_absoluteY="8dp"
tools:layout_editor_absoluteX="8dp">
<fragment
android:id="@+id/fragment2"
android:name="com.example.julian.tutorial_fragment.BottomPictureFragment"
android:layout_width="250dp"
android:layout_height="250dp"
tools:layout="@layout/bottom_picture_fragment"
tools:layout_editor_absoluteX="67dp"
tools:layout_editor_absoluteY="223dp"
android:layout_marginBottom="30dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<fragment
android:id="@+id/fragment"
android:name="com.example.julian.tutorial_fragment.TopSectionFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout="@layout/top_section_fragment"
tools:layout_editor_absoluteX="42dp"
tools:layout_editor_absoluteY="16dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/fragment2"
android:layout_alignStart="@+id/fragment"
android:text="Button"
android:onClick="sample"/>
<fragment
android:id="@+id/fragment3"
android:name="com.example.julian.tutorial_fragment.Fragment_Search"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_below="@+id/button2"
android:layout_marginTop="92dp"
android:layout_toStartOf="@+id/button2" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
あなたのactivity_main.xmlを表示 –
タブレットで作業する場合を除き、同じレイアウトで同時に3つの(!)フラグメントを使用する必要はありません。私はあなたが必要に応じて別のものに置き換える1つだけのフラグメントを使用するようにレイアウトを考え直すべきだと思います。さらに、ConstraintLayoutとRelativeLayoutがContstraintLayoutに単独であるため、ConstraintLayoutとRelativeLayoutは必要ありません – Eselfar
他の2つはチュートリアルから得たもので、入力したデータを読み込むかテストするために使用しましたそれは2番目の断片のテキストビューにあります。私はそれが働いていることを知っていた。私は、このボタンをクリックすることでのみ表示されるフラグメントを使用してみたかったので、メインアクティビティの上に表示されます。しかし、そのような断片を示すチュートリアルは表示されません。私は1つを見ましたが、それはSupportMapFragmentを使用しています、それと同様のチュートリアルを持っている他のものを見つけることができません。私は –