2017-08-27 8 views
-2

GridViewには、一部のgrid_itemsが設定されています。私は新しいレイアウトを膨らませるための方法を探していますGridViewアダプタでレイアウトを拡張する方法

画面の一部だけを占めるであろうと(のはそれpop_up_layout.xmlを呼びましょう)と、特定のgrid_itemビューに配置されたボタンをクリックしたときに、このイベントがトリガされなければなりません。私は、現在のアイテムの位置にアダプタの機能を配置する必要があることを知っています。

私の目的は、grid_itemに関する詳細情報を表示することと、膨らんでいるpop_up_layout.xmlの新しいボタンを通じてユーザーに新しいオプションを提供することです。

私はSOだけでなくウェブサイトに関連する質問のほとんどを検索し、スキミングしましたが、私はポップアップ表示を表示するだけの解決策を見つけるようです。

誰かが正しい方向に向かうことができますか? thisのようなものが私が探しているものです。

+0

あなたはそのためdialogfragmentを使用することができ、それは相対を表示できるように、フラグメントにグリッドビューからデータを送信することができます内容 –

答えて

1

あなたのケースにはDialogFragmentを使用することができます。レイアウトは完璧な答えではありません。

あなたのグリッド項目のクリックにして使用することができますフラグメントを開くには

FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction(); 
     BaseDialogFragment Fragment = new BaseDialogFragment(); 
     transaction.add(fragment, "loading"); 
     Bundle args = new Bundle(); 
     args.putString("your_data", yourdata); 
// you can add as many string int or boolean. Explore it. 
     fragment.setArguments(args); 
     transaction.commitAllowingStateLoss(); 





    public class BaseDialogFragment extends DialogFragment { 

      Typeface MR, MRR; 

      @Override 
      public void onViewCreated(View view, Bundle savedInstanceState) { 
       super.onViewCreated(view, savedInstanceState); 
       getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
       getDialog().setCanceledOnTouchOutside(false); 



      } 

      @Override 
      public void onStart() { 

       super.onStart(); 

       Window window = getDialog().getWindow(); 
       WindowManager.LayoutParams windowParams = window.getAttributes(); 
       windowParams.dimAmount = 0.50f; 

       window.setAttributes(windowParams); 
      } 

      public void onResume() { 

       super.onResume(); 
       WindowManager.LayoutParams params = getDialog().getWindow().getAttributes(); 
       params.width = RelativeLayout.LayoutParams.MATCH_PARENT; 
       params.height = RelativeLayout.LayoutParams.WRAP_CONTENT; 
       params.gravity = Gravity.CENTER; 
       getDialog().getWindow().setAttributes(params); 



      } 

      @Nullable 
      @Override 
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 

       View v = inflater.inflate(R.layout.yourlayout, container, false); 

       // init your views here. or 
get the data here from the Grid View 
       String your_data = getArguments().getString("your_data"); 

       return v; 
      } 
     } 
+0

ご返信ありがとうございます。あなたの答えはスポットライトです。私は必要なものすべてを持っています。素晴らしい説明です。私はすぐにそれを実装し、それをテストします。実際のコードに関しては、私は完全に理解していないコードを書くのが好きではないので、いくつか質問があります。時間があればコメントに残すことができます。私が受け取った下降音について、実際にそれを与えた人からの説明を本当に見たいと思います。少なくとも私は自分の言葉をより良くフィルターに掛け、将来私の質問を改善することができます。 –

関連する問題