2017-08-27 3 views
-2

aufgeblasen werden Ich habe eine GridView mit einigen grid_items bestückt.Wie ein Layout in GridView Adapter

ich nach einem Weg suchen ein neues Layout aufzublasen (nennen wir es pop_up_layout.xml), die nur einen Teil des Bildschirms und dieses Ereignis ausgelöst werden soll einnehmen würde, wenn eine Schaltfläche in einer bestimmten grid_item Ansicht platziert klicken. Ich weiß, dass ich die Funktionalität in den Adapter an der Position des aktuellen Artikels einfügen muss.

Mein Zweck ist es, mehr Informationen über die grid_item anzuzeigen sowie neue Optionen für die Benutzer durch neue Tasten in der pop_up_layout.xml, die aufgeblasen wird.

Ich habe gesucht und blätterte die meisten der in SO sowie Websites Fragen aber ich glaube, Lösungen zu finden, nur Pop-up-Ansichten angezeigt werden soll.

Kann mir jemand in die richtige Richtung zeigen? So etwas wie this ist, was ich suche.

+0

Sie dialogfragment dafür verwenden könnte, und Sie können Daten aus der Rasteransicht auf das Fragment senden, so dass es die relative zeigen Inhalt –

Antwort

1

Sie können DialogFragment für Ihren Fall verwenden, wenn das Aufblasen des Layouts nicht die perfekte Antwort ist.

das Fragment Zum Öffnen Sie in der auf Klicken Sie mit der Rasterelement verwenden können

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

Vielen Dank für Ihre Antwort. Ihre Antwort ist genau richtig, es hat alles, was ich brauche, nette Erklärungen. Ich werde es in Kürze implementieren und testen. Bezüglich des eigentlichen Codes habe ich einige Fragen, da ich Code nicht schreiben möchte, den ich nicht vollständig verstehe. Wenn Sie Zeit haben, kann ich sie in Kommentaren hinterlassen. In Bezug auf den Downvote, den ich erhalten habe, würde ich gerne eine Erklärung von der Person sehen, die sie tatsächlich gegeben hat. Zumindest kann ich meine Worte besser filtern und meine Fragen in Zukunft verbessern. –

Verwandte Themen