2

私は検索と設定アイコンでカスタムツールバーを作っています。検索アイコンをクリックすると、edittextはmatch_parentでapperし、検索アイコンまで空き領域を占有する必要があります。しかし、それは起こっていません。それはちょうど左上に非常に小さなスペースで表示されます。私は、XMLmatch_parentがカスタムツールバーで動作していません

main_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#DCDCDC" 
android:padding="0dp" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="myresolver.faisal.home.com.myresolver.MainActivity"> 

<include 
    android:id="@+id/toolbar" 
    layout="@layout/my_toolbar"></include> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/toolbar" 
    android:fillViewport="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:padding="1dp" 
     android:weightSum="4" 

     > 


     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96"></ImageView> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:orientation="horizontal" 
      android:weightSum="3"> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 

      <ImageView 
       style="@style/icon" 
       android:background="@drawable/fear_96" /> 
     </LinearLayout> 


    </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 

mytoolbar.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/orange" app:titleTextColor="@color/white"></android.support.v7.widget.Toolbar>

で私の全体のコードを共有したいと思い、私は間違っているところ

enter image description here

を助けてください

私main_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools"> 

<item 
    app:showAsAction="always" 
    android:title="@string/search" 
    android:icon="@drawable/ic_search_white_24dp" 
    android:id="@+id/search" 
    ></item> 
<item 
    app:showAsAction="always" 
    android:title="@string/setting" 
    android:icon="@drawable/ic_settings_white_24dp" 
    android:id="@+id/setting"></item> 
</menu> 

私search_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal"> 

<EditText 
    android:id="@+id/searchEditText" 
    android:layout_width="match_parent" // THIS IS NOT WORKING 
    android:layout_height="wrap_content" 
    android:imeOptions="actionSearch" 
    android:inputType="text" /> 

</LinearLayout> 

私の活動

EditText searchEditText; 
boolean isSearchBoxOpen = false; 
Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

} 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 


    return super.onPrepareOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.search: 
      onSearchedHandler(); 
      break; 

     case R.id.setting: 
      Toast.makeText(this, "Setting is UnderConstruction", Toast.LENGTH_LONG).show(); 
      break; 
    } 


    return super.onOptionsItemSelected(item); 
} 

public void onSearchedHandler() { 
    if (isSearchBoxOpen) { 

     String word = searchEditText.getText().toString(); 

     if (word != null) { 
      Toast.makeText(this, "Searching for ..." + word, Toast.LENGTH_LONG).show(); 
     } 
    } else { 

     ActionBar actionBar = getSupportActionBar(); 
     actionBar.setDisplayShowCustomEnabled(true); 
     actionBar.setCustomView(R.layout.search_layout); 
     actionBar.setDisplayShowTitleEnabled(false); 

     searchEditText = (EditText) actionBar.getCustomView().findViewById(R.id.searchEditText); 

     searchEditText.requestFocus(); 
     InputMethodManager keyboard = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
     keyboard.showSoftInput(searchEditText, InputMethodManager.HIDE_IMPLICIT_ONLY); 


     isSearchBoxOpen = true; 

    } 

} 

@Override 
public void onBackPressed() { 

    if (isSearchBoxOpen) { 

     ActionBar actionBar = getSupportActionBar(); 

     actionBar.setDisplayShowCustomEnabled(false); 
     actionBar.setDisplayShowTitleEnabled(true); 
     isSearchBoxOpen = false; 

     return; 

    } 

    super.onBackPressed(); 
} 
+0

リニアレイアウト幅はラップコンテンツ – Rasel

+0

する必要があります私はあなたが何を言っている理解didntの? – FaisalAhmed

+0

search_layout.xml \t - >リニアレイアウトの高さは、私が.but試した – Rasel

答えて

2

にパディングを移動

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#DCDCDC" 
android:padding="0dp" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="myresolver.faisal.home.com.myresolver.MainActivity"> 

完全なスペースを取るので、代わりに持っていることから、それを防止S(残油) wrap_contentが強制的に適用されます(ビューのダンプを調べると、LinearLayoutのラップがEditTextではなく縮小されていることがわかります)。あなたは次のようにカスタムビューを設定することができ :search_layoutで

View customView = LayoutInflater.from(this).inflate(R.layout.search_layout, null); 
    ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT); 
    actionBar.setCustomView(customView, params); 
+0

おかげです。私は2日からそれを探していた。最終的には正常に動作します。あなたはそれを本当にうまく説明しました。私は必死にそれを探していた。それが私の知識を増やします。再度、感謝します – FaisalAhmed

6

使用ツールバーのXLMのレイアウトについては、以下のコード:

<android.support.v7.widget.Toolbar 
    xmlns:app="schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/primaryColor" 
    android:contentInsetLeft="0dp" 
    android:contentInsetStart="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetStart="0dp" 
    android:contentInsetRight="0dp" 
    android:contentInsetEnd="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetEnd="0dp" /> 
+0

が、これはこれは私の1のために働いている – FaisalAhmed

+0

が動作していません。 – Shailesh

+0

ありがとう!私のために良い! –

0

パディングでmain_activity.xmlのRelativeLayoutカスタムビューがsetCustomViewを呼び出した結果として膨張すると、あなたがscrollviewよう

<ScrollView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_below="@+id/toolbar" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:fillViewport="true"> 
+0

これも動作していません.. – FaisalAhmed

+0

@FaisalAhmed何をあなたに与えているのですか? – Seaskyways

+0

すべての側からのパディング付きのスクロールビュー、およびそのままの状態のedittext。変更なし – FaisalAhmed

関連する問題