1
ボタンをクリックすると、プログラムにフラグメントをプログラムで追加したいと考えています。私のactivity_main.xmlレイアウトには、textViews、imageViews、およびボタンがあります。そのボタンをクリックすると、imageViewでフラグメントを開きます。私の問題は、activity_mainレイアウトを隠す代わりに、textViewと画像の上の小さなウィンドウにフラグメントが表示されることです。どのように私はこの問題を解決することができ??? `ボタンをクリックすると、プログラムにフラグメントがアクティビティに追加されます
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@android:color/holo_orange_light"
android:layout_height="match_parent"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:orientation="vertical"
android:weightSum="1">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/frag_container">
</FrameLayout>
<AnalogClock
android:dial="@drawable/clock_dial"
android:hand_hour="@drawable/clock_hour_hand"
android:hand_minute="@drawable/clock_minute_hand"
android:id="@+id/clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="0.75" />
<TextView
android:id="@+id/date"
android:layout_marginLeft="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginLeft="8dp"
android:paddingTop="8dp"
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/sunrise"
android:layout_marginLeft="8dp"
android:paddingTop="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/sunset"
android:layout_marginLeft="8dp"
android:paddingTop="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sunset"
android:textColor="@android:color/white"
android:background="@android:color/black"
android:id="@+id/button_sunset"
android:layout_gravity="center_horizontal" />
</LinearLayout>`
マイフラグメントレイアウト:
`<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/sky"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.61"
android:background="@color/blue_sky">
<ImageView
android:id="@+id/sun"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:src="@drawable/sun"/>
</FrameLayout>
<FrameLayout
android:id="@+id/sea"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.39"
android:background="@color/sea">
</FrameLayout>
</LinearLayout>`
マイアクティビティ:
public class MainActivity extends AppCompatActivity {
@BindView(R.id.date)
TextView mDate;
@BindView(R.id.location)
TextView mLocation;
@BindView(R.id.sunrise)
TextView mSunrise;
@BindView(R.id.sunset)
TextView mSunset;
@BindView(R.id.button_sunset)
Button buttonSunset;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
setSunsetButton();
}
public void setSunsetButton() {
buttonSunset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SunsetFragment sunsetFragment = new SunsetFragment();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.add(R.id.frag_container, sunsetFragment);
fragmentTransaction.commit();
}
});
}
}