2016-05-15 5 views
0

どのように配置するのか分かりません。多くの方法が試みられてきた。
私はLinerLayoutを隠してロックされたキーボードを、このコードは動作しません後にする必要があります。開いているキーボードボタンを押している間に一度LinearLayoutを非表示にする戻る

どうすればよいですか? CustomLinearLayout.class

package my.package; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
import android.widget.LinearLayout; 
import android.widget.Toast; 

public class CustomLinearLayout extends LinearLayout { 

    Context context; 

    public CustomLinerLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     this.context = context; 
    } 

    @Override 
    public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      LinearLayout menu = (LinearLayout) findViewById(R.id.menu); 
      menu.setVisibility(GONE); 

     } 
     return false; 
    } 
} 

Profile.class

package my.package; 

import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.KeyEvent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewTreeObserver; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.view.inputmethod.EditorInfo; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.FrameLayout; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.ScrollView; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.ViewFlipper; 

import java.lang.reflect.Array; 

public class Profile extends AppCompatActivity { 

    CustomLinearLayout menu; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_application); 


     menu = (CustomLinearLayout) findViewById(R.id.menu); 

     menu.setVisible(View.VISIBLE); 



    } 




    } 
+0

ライト補正と書式設定 – LoicTheAztec

答えて

0

<LinearLayout 
     android:id="@+id/menu" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:visible="visible"> 

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/mark" 
      android:gravity="center" 
      android:padding="@dimen/Content"> 

      <EditText 
       android:id="@+id/greeting" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:hint="@string/greeting_default" 
       android:layout_weight="1" 
       android:textColor="@color/text_on_white" 
       android:background="@color/mark"/> 

      <Button 
       android:id="@+id/greeting_ok" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:background="@color/mark" 
       android:textColor="@color/text_on_white" 
       android:text="@string/greeting_ok"/> 

     </TableRow> 

    </TableLayout> 

コンテキスト従って私はそれが任意のキーボードイベントを受信しない、問題はあなたのCustomLinearLayoutに焦点が合っていないということだと思います。あなたにできることはどちらか、このようなXMLまたはコードでそれがフォーカス可能にする次のとおりです。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_application); 
    menu = (CustomLinearLayout) findViewById(R.id.menu); 
    menu.setVisible(View.VISIBLE); 

    menu.setFocusable(true); 
    menu.setFocusableInTouchMode(true); 
} 

また、あなたのレイアウトクラスで、あなたはイベントがそれを処理するシステムを防ぐために処理された場合trueを返す必要があります。

@Override 
public boolean onKeyPreIme(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     LinearLayout menu = (LinearLayout) findViewById(R.id.menu); 
     menu.setVisibility(GONE); 

     return true; 
    } 

    return false; 
} 

これは、たとえばEditTextにフォーカスを当てた場合には役に立ちません。onCreate

関連する問題