2017-08-31 106 views
0

我想替換或調用片段GridView項目點擊,但當我打電話給我的片段時,GridView也是可見的,我的片段也是可見的。我需要隱藏GridView並顯示我的片段。 請幫我這個。 onItemClickGridView我想打開我的片段。我已經使用了下面的代碼。片段不被替換gridview項目點擊android

這裏是我的代碼

package com.softians.car; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.NavigationView; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.GridView; 

public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener 
{ 

//================================================================================================================ 

    GridView grid; 
    String[] web = { 
      "MLA", 
      "Important Work", 
      "Feedback", 
      "Contact", 
      "Events", 
      "Work Done", 
      "Party Info", 
      "Images", 
      "Video", 
      "Shere", 
      "City Info", 
      "Gov.Links", 
      "news", 
      "Educational", 
      "pay Bill", 
      "Election", 
      "Job", 
      "Mobile Bill" 


    } ; 
    int[] imageId = { 
      R.drawable.mla, 
      R.drawable.imp, 
      R.drawable.feedback, 

      R.drawable.contact, 
      R.drawable.event, 
      R.drawable.workdone, 

      R.drawable.leader, 
      R.drawable.images, 
      R.drawable.video_player, 

      R.drawable.share, 
      R.drawable.cityscape, 
      R.drawable.link, 

      R.drawable.news, 
      R.drawable.education, 
      R.drawable.billpay, 

      R.drawable.vote, 
      R.drawable.job, 
      R.drawable.transfer 

    }; 

//======================================================================================================== 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 


//==========================================Grid View========================================================================== 


     CustomGrid adapter = new CustomGrid(MainActivity.this, web, imageId); 
     grid=(GridView)findViewById(R.id.grid); 
     grid.setAdapter(adapter); 
     grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
      { 
//    if (position==1) 
//    { 
//     Intent i = new Intent(MainActivity.this, Important_Activity.class); 
//     startActivity(i); 
//     // Toast.makeText(MainActivity.this, "You Clicked at " + web[+position], Toast.LENGTH_SHORT).show(); 
//    } 
//    else 
//    { 
//     Toast.makeText(MainActivity.this, "Working...", Toast.LENGTH_SHORT).show(); 
//    } 


       switch (position) 
       { 
        case 0: Information aa = new Information(); 
          FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 

          fragmentTransaction.replace(R.id.frame,aa); 
          fragmentTransaction.commit(); 



//     case 0: Intent mla = new Intent(MainActivity.this, Information.class); 
//       startActivity(mla); 
//       break; 
// 
//     case 1: Intent imp = new Intent(MainActivity.this, Important_Activity.class); 
//       startActivity(imp); 
//       break; 
// 
//     case 3: Intent con = new Intent(MainActivity.this, Important_Activity.class); 
//       startActivity(con); 
//        break; 
// 
       } 

      } 
     }); 
+0

可以請您分享xml佈局的activity_main嗎? –

+0

將你的片段背景設置爲白色 –

回答

0
try this   

switch (position) { 
      case 0: Information aa = new Information(); 
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.frame,aa); 
     fragmentTransaction.commit(); 
     grid.setVisibility(View.GONE); 
         } 
1

你問題出在你的碎片的background。由於您可能沒有爲該片段定義任何背景,因此它變得透明,因此兩個視圖都可見(您的GridView和片段)。

在您的片段XML的根佈局定義,例如:

android:background="@color/white" 

之後,你會發現,從View片段(GridView控件)下面的單擊事件也被稱爲即使是不可見,所以在相同的佈局中,您在其中定義了整個片段的背景,還要添加:

android:clickable="true"