2016-12-20 7 views
3

나는과 같이, 런타임에서 현재보기에 SearchView를 추가하고 : 버튼을 누를 때SearchView가 AppBar를 영구적으로 위쪽으로 이동하고 있습니까?

View searchpage = inflater.inflate(R.layout.search_ui, (ViewGroup) view.getParent(), false); 
    SearchView searchbar = (SearchView) searchpage.findViewById(R.id.searchbar); 
    //ViewGroup of current layout 
    parent.addView(searchbar); 

이 코드가 실행됩니다.

이 코드는 작동하지만 SearchView를 입력하고 종료하면 AppBar가 종료 될 때 AppBar를 위로 움직이는 애니메이션이 재설정되지 않습니다. SearchView는 AppBar에 포함되어 있지 않으며이 작업을 시도하지 않습니다. SearchView를 그대로 AppBar 아래에 놓고 싶습니다.

AppBar은 별도의 xml 파일에 정의되어 있습니다. ViewPager를 사용하여 여러보기간에 전환합니다. 검색 창은과 같이 XML로 정의된다

After SearchView is Tapped/Entered and Exited

Before SearchView is Tapped

:

<android.support.v7.widget.SearchView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/searchbar" 
     android:layout_below="@+id/view" 
     android:iconifiedByDefault="false" 
     android:queryHint="Search" 
     android:layout_centerHorizontal="true"> 

    </android.support.v7.widget.SearchView> 

AppBar 그래서 다음과 같이 정의된다 :

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="@dimen/appbar_padding_top" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

     </android.support.v7.widget.Toolbar> 
여기

은 스크린 샷이다

도움이 될만한 점은 AppBar가 자동으로 다시 아래로 슬라이드되지 않는 이유입니다.

편집 : 동시에 화면 맨 아래에 나타나지 않는 버튼 집합에 문제가 있습니다. 나는 그들이 nav bar 밑으로 끌려 가고 있다는 것을 알아 냈다. SearchView를 입력 할 때 도구 모음이 화면의 맨 아래에있는 버튼 집합을 수용하도록 위쪽으로 밀리고 있다고 생각합니다. 레이아웃에 패딩을 추가했는데 그 문제의 해결책이라고 생각합니다.

감사합니다,

-n.parker

+0

'AndroidManifest'에서 ['windowSoftInputMode'] (https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft)를 설정하고 있습니까? (그렇다면'adjustPan'을 사용하고 있습니까?) – Karakuri

+0

나는 그런 것들을하지 않습니다. –

+0

나는 그렇지 않다. 나는 그것이 원인일지도 모른다고 묻고 있었다. – Karakuri

답변

-1

이런 식으로 뭔가를 시도;

"layout"폴더 안에 다음과 같은 toolbar.xml을 만듭니다.

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:minHeight="?attr/actionBarSize"/> 

이제이 툴바를 다른 활동에서도 재사용 할 수 있습니다.

+0

이것이 내 문제를 어떻게 해결할 지 혼란 스럽습니다. 자체 XML 파일에서 SearchView를로드하고 이미로드 된 뷰에 추가합니다. 툴바와 비슷한 기능을 수행해야합니까? –

+0

당신은 "SearchView가 그대로 AppBar 아래에있게하고 싶습니다."라고 물었습니다. - 도움이 될 것입니다. 또한 한 파일에서 도구 모음을 가져오고 개별 도구 모음을 만들지 않는 것이 좋습니다. – Zac1