如何膨胀GridView适配器中的布局

如何膨胀GridView适配器中的布局

问题描述:

我已经填充GridView与一些grid_items如何膨胀GridView适配器中的布局

我正在寻找一种方式来夸大一个新的布局(我们称之为pop_up_layout.xml),将只占据屏幕的一部分,该事件应该点击放置在一个特定grid_item视图按钮时触发。我知道我必须将功能放在适配器当前项目的位置。

我的目的是为了显示对grid_item更多信息,以及在正在膨胀的pop_up_layout.xml提供通过新的按钮用户新的选择。

我已经搜索并浏览了大部分与SO相关的问题以及网站,但我似乎只找到解决方案来显示弹出式视图。

有人能指出我正确的方向吗? 类似this是我正在寻找。

+0

你可以使用dialogfragment对于这一点,你可以从网格视图数据发送到片段,以便它可以显示出相对内容 –

您可以使用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

谢谢您的回复。你的答案是专注,它有我需要的一切,很好的解释。我会尽快实施并测试它。关于实际的代码,我确实有一些问题,因为我不喜欢编写我没有完全理解的代码。如果你有时间我可以留下评论。关于我收到的恶意软件,我真的很想看到实际给予它的人的解释。至少我可以更好地过滤我的话,并在未来改善我的问题。 –