4

私はアンドロイドで開発するのは初めてです。にグリッドが含まれていて、グリッドLinearLayoutを構成する各アイテムはボタンです。LinearLayoutユーザーがこれらのボタンのいずれかを押したときに、これが非表示になるようにします。

これは私の「ホーム」レイアウトシェルです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
  <TextView/>
  <LinearLayout>   //<-- this is the layout I want to hide
     <TextView/>
     <GridView/>
  </LinearLayout>
</LinearLayout>

これは、MyArrayAdapterで設定したonClickメソッドです(ボタンを膨らませるために使用されます)

@Override
public void onClick(View v) {
   View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null);  
   LinearLayout ll_options = (LinearLayout) convertView.findViewById(R.id.ll_options);
   ll_options.setVisibility(View.INVISIBLE);
}

うまくいくはずだと思いますが、テストしても何も起こりません。

同様の質問を見つけましたが、問題は解決しません。

4

3 に答える 3

8

なぜここでレイアウトを膨らませているのですか?:

View convertView = activity.getLayoutInflater().inflate(R.layout.layout_home, null);

ただ行う:

View v = activity.findViewById(R.id.ll_options);
v.setVisibility(View.INVISIBLE);
于 2012-04-19T22:44:34.103 に答える
2

そこに追加するまで表示されているビュー階層にない新しいビューを作成し、それを非表示にします。だからあなたは目に見えないものを隠します。

代わりに、次を試してください。

@Override
public void onClick(View v) {
   findViewById(R.id.ll_options).setVisibility(View.INVISIBLE);
}

これはIMOが機能するはずです。ll_optionsアクティビティの表示(グローバル)ビュー階層内のビューを検索し、それを非表示にします。

于 2012-04-19T22:45:11.880 に答える
0

編集:

あなたのボタンはどこにありますか?同じレイアウトファイルにありますか?新しいレイアウトを膨らませてLinearLayoutを非表示にしますが、この新しいレイアウトは使用されません。リスナーのcontentViewにアクセスできることを確認してください。

于 2012-04-19T22:42:19.113 に答える