解決方法がわからない問題があります。特定のフラグメントでツールバーを非表示にするにはどうすればいいですか、すでにインターネット上で検索しており、アクティビティとフラグメントがそれを解決することを伝えていました。しかし、私にはまったく機能しません。ここに私のコードがあります:
主な活動:
public class MainActivity extends ActionBarActivity implements like_frag.OnHideToolbar{
....
public void onHidingToolbar(int position){
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
if(toolbar == null){
getSupportActionBar().hide();
}else{
getSupportActionBar().hide();
}
}
like_frag.Java
public class like_frag extends Fragment {
OnHideToolbar mCallback;
Toolbar toolbar;
public interface OnHideToolbar {
public void onHidingToolbar(int position);
}
public void onAttach(Activity activity){
try{
mCallback = (OnHideToolbar) activity;
}catch(ClassCastException e){
throw new ClassCastException(activity.toString() + "error implementing");
}
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.swipefrag, container, false);
toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
}
前もって感謝します。
ツールバーの中に引き出しがあります。
このコードを、ツールバーを非表示にするフラグメントに配置します...
@Override
public void onResume() {
super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}
@Override
public void onStop() {
super.onStop();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
フラグメントのonCreate
メソッド呼び出しで:((AppCompatActivity) getActivity()).getSupportActionBar().hide();
AppCompateActivity
を、使用したアクティビティクラスに置き換えます。
フラグメントにインターフェースを作成し、それを使用して、ツールバーを非表示にするように親アクティビティに指示します。
フラグメントに次の行を追加します。
private OnEventListener listener;
public interface OnEventListener {
void hideToolbar() ;
}
public void setOnEventListener(OnEventListener listener) {
this.listener = listener;
}
メインアクティビティでフラグメントを作成したら、以下を追加します。
myFragment.setOnEventListener(new MyFragment.OnEventListener() {
@Override
public void hideToolbar() {
getSupportActionBar().hide();
}
});
ツールバーを非表示にする必要があるときはいつでも実行します:
listener.hideToolbar();
フラグメントの中から。
ツールバーを無効にするフラグメントにこれらのメソッドを追加し、フラグメントのonStop()
で再度表示するようにします。
@Override
public void onResume() {
super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}
@Override
public void onStop() {
super.onStop();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
kotlinでは、次のようにsupportActionBar
を非表示および表示します。
override fun onResume() {
super.onResume()
(activity as AppCompatActivity).supportActionBar?.hide()
}
override fun onStop() {
super.onStop()
(activity as AppCompatActivity).supportActionBar?.show()
}
独自のカスタムツールバーが必要な場合は、OncreateView
で以下を設定します。
//your Custom toolbar in xml
val toolbar = binding.toolbar
(activity as AppCompatActivity).setSupportActionBar(toolbar)
ツールバーを非表示にするフラグメントにこのコードを挿入...
This(((AppCompatActivity)getActivity())。getSupportActionBar()。hide();)をonCreateViewまたはonResumeに追加します。
onDestroy()でこれを行います
@Override
public void onDestroy() {
super.onDestroy();
((AppCompatActivity)getActivity()).getSupportActionBar().show();}