从 Activity 获取片段视图的 ID
Get id of fragment's view from Activity
我有片段中的视频视图。当我按下按钮时,它在横向模式下显示为全视图,但当我按下按钮时,它应该会显示为正常视图。为此,我在 Activity 中处理 onBackPressed()
,但我无法在 Activity
中获取该视频视图的 ID。那么如何获取 Activity
的 onBackPressed()
中的视频视图 ID,它位于 Fragment
class.
中
这是 Fragment
中用于全屏显示视频的代码:
fullScreen = (ImageView) controller.findViewById(R.id.fullscreen);
fullScreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 8.0f);
videoView.setLayoutParams(param);
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
这是我需要在Activity
中处理的:
@Override
public void onBackPressed() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 5.0f);
videoView.setLayoutParams(param);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
super.onBackPressed();
}
}
但是我这里需要 videoView
id。如何在 Activity
中获取?
蛮力 方法是从您的片段中获取视图:
@Override
public void onBackPressed() {
VideoView videoView = yourFragment.getView().findViewById(R.id.your_video_view);
...
}
您可以执行以下操作之一:
- 调用接口方法将您的 Fragment 连接到 Activity。
- 从您的 activity 调用片段的 public 方法。
我有片段中的视频视图。当我按下按钮时,它在横向模式下显示为全视图,但当我按下按钮时,它应该会显示为正常视图。为此,我在 Activity 中处理 onBackPressed()
,但我无法在 Activity
中获取该视频视图的 ID。那么如何获取 Activity
的 onBackPressed()
中的视频视图 ID,它位于 Fragment
class.
这是 Fragment
中用于全屏显示视频的代码:
fullScreen = (ImageView) controller.findViewById(R.id.fullscreen);
fullScreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 8.0f);
videoView.setLayoutParams(param);
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
这是我需要在Activity
中处理的:
@Override
public void onBackPressed() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 5.0f);
videoView.setLayoutParams(param);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
super.onBackPressed();
}
}
但是我这里需要 videoView
id。如何在 Activity
中获取?
蛮力 方法是从您的片段中获取视图:
@Override
public void onBackPressed() {
VideoView videoView = yourFragment.getView().findViewById(R.id.your_video_view);
...
}
您可以执行以下操作之一:
- 调用接口方法将您的 Fragment 连接到 Activity。
- 从您的 activity 调用片段的 public 方法。