2017-09-13 1 views
0

저는 하루 반 동안이 이상한 버그를 알아 내려고 애 쓰고 있습니다. 내가 ExpandableListView의 자식 인 EditText를 클릭 할 때마다, 화면 아래 GIF와 같이 사용자가 입력되는 것을 볼 수 없습니다되도록 가려됩니다 : \ n https://giant.gfycat.com/GenuineUnluckyHyrax.mp4ExpandableListView 내에서 EditText를 클릭하면 화면이 배경색으로 변합니다.

나는 파고 시작 https://i.imgur.com/B4kkHv7.png

나를 위해 상단이 그에 할 나던 때문에 홀수 화면을 커버 아래쪽으로 확장되어 최대는 도구 모음과 같습니다 계층 구조보기 여기의 스크린 샷이며,이 일을 할 수 있는지 확인합니다 위젯이 EditText 인 다른 활동. 부모 조회수가 match_parent이 아닌 DrawerLayout을 제외하고는 "match_parent"대신 높이로 "wrap_content"을 사용하고 있는지 확인했습니다.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<TextView 
    android:id="@+id/qwedit_sidebar_elv_parent_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/black" 
    android:padding="3dp" 
    android:layout_marginLeft="40dp" 
    android:gravity="center" 
    android:textSize="20sp" 
    android:text="Category"/> 
<ImageView 
    android:id="@+id/qwedit_elv_parent_status" 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:layout_marginLeft="35dp" 
    android:src="@drawable/ic_warning"/> 
<TextView 
    android:id="@+id/qwedit_elv_parent_score" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="75dp" 
    android:layout_gravity="left" 
    android:gravity="right" 
    android:textColor="@color/colorPrimary" 
    android:textSize="20sp" 
    android:text="Score"/> 

</LinearLayout> 

나는 이것이 있으리라 믿고있어

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
<LinearLayout 
    android:id="@+id/qwedit_elv_item_score_container" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <LinearLayout 
     android:id="@+id/qwedit_main_badView" 
     android:layout_width="232.5dp" 
     android:layout_height="145.3dp" 
     android:background="@color/badScore"> 
     <TextView 
      android:id="@+id/qwedit_main_badTextView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" 
      android:textColor="@color/white" 
      android:textSize="20sp" 
      android:text="Bad"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/qwedit_main_mediocreView" 
     android:layout_width="232.5dp" 
     android:layout_height="145.3dp" 
     android:background="@color/mediocreScore"> 
     <TextView 
      android:id="@+id/qwedit_main_mediumTextView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" 
      android:textColor="@color/white" 
      android:textSize="20sp" 
      android:text="Mediocre"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/qwedit_main_goodView" 
     android:layout_width="232.5dp" 
     android:layout_height="145.3dp" 
     android:background="@color/goodScore"> 
     <TextView 
      android:id="@+id/qwedit_main_goodTextView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" 
      android:textColor="@color/white" 
      android:textSize="20sp" 
      android:text="Good"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/qwedit_main_wcView" 
     android:layout_width="232.5dp" 
     android:layout_height="145.3dp" 
     android:background="@color/worldclassScore"> 
     <TextView 
      android:id="@+id/qwedit_main_worldclassTextView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:gravity="center" 
      android:textColor="@color/white" 
      android:textSize="20sp" 
      android:text="World Class"/> 
    </LinearLayout> 
</LinearLayout> 
<EditText 
    android:layout_width="930dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/qwedit_elv_item_score_container" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:hint="Comments"/> 

</RelativeLayout> 

항목 레이아웃 :

여기
<!-- This DrawerLayout has two children at the root --> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- This LinearLayout represents the contents of the screen --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 


     <!-- The ActionBar displayed at the top --> 
     <include 
      layout="@layout/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

     <!-- The main content view where fragments are loaded --> 
     <FrameLayout 
      android:id="@+id/flContent" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
      <RelativeLayout 
       android:id="@+id/rlcontent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:focusable="true" 
       android:focusableInTouchMode="true"> 

       <!--SideBar views --> 
       <RelativeLayout 
        android:layout_width="350dp" 
        android:layout_height="match_parent" 
        android:background="@color/sidebarColor"> 
        <ExpandableListView 
         android:id="@+id/qwedit_sidebar_elv" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:indicatorLeft="? 
android:attr/expandableListPreferredItemIndicatorLeft" 
         android:divider="@color/colorPrimary" 
         android:dividerHeight="0.5dp"> 
        </ExpandableListView> 
       </RelativeLayout> 

       <!--MainView views --> 
       <RelativeLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"> 
        <ExpandableListView 
         android:id="@+id/qwedit_main_elv" 
         android:layout_width="930dp" 
         android:layout_height="wrap_content" 
         android:indicatorLeft="? 
android:attr/expandableListPreferredItemIndicatorLeft" 
         android:divider="@color/colorPrimary" 
        android:dividerHeight="0.5dp" 
        android:layout_alignParentTop="true" 
        android:layout_alignParentEnd="true" 
        android:layout_marginTop="25dp"> 
       </ExpandableListView> 
      </RelativeLayout> 

     </RelativeLayout> 
    </FrameLayout> 
</LinearLayout> 

<!-- The navigation drawer that comes from the left --> 
<!-- Note that `android:layout_gravity` needs to be set to 'start' --> 
<android.support.design.widget.NavigationView 
    android:id="@+id/nvView" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@android:color/white" 
    android:layout_marginTop="25dp" 
    app:menu="@menu/drawer_view" /> 
</android.support.v4.widget.DrawerLayout> 

EVL의 그룹 레이아웃입니다 : 아래는 활동에 대한 레이아웃 코드는 모두 레이아웃으로 인해 발생하지만, 여기에 대답이 부풀려지는 방식에 대한 답이있는 경우를 위해 내가 작성한 CustomExpandableListAdapter이 있습니다.

/** 
* Created by Tadhg on 9/8/2017. 
*/ 

public class QwEditMainCustomExpandableListAdapter extends BaseExpandableListAdapter { 
private Context context; 
private List<String> expandableListTitle; 
private HashMap<String, List<String>> expandableListDetail; 

//Values inits 
private int categoryScore; 
private int subCategoryScore; 
private boolean completedCategory; 
private boolean completedSubCategory; 

// ChildView views 
private View badScoreView; 
private View mediocreScoreView; 
private View goodScoreView; 
private View worldclassScoreView; 
TextView badScoreTextView; 
TextView mediocreScoreTextView; 
TextView goodScoreTextView; 
TextView worldClassScoreTextView; 
EditText questionCommentEditText; 

public QwEditMainCustomExpandableListAdapter(Context context, List<String> expandableListTitle, 
              HashMap<String, List<String>> expandableListDetail) { 
    this.context = context; 
    this.expandableListTitle = expandableListTitle; 
    this.expandableListDetail = expandableListDetail; 
} 

@Override 
public Object getChild(int listPosition, int expandedListPosition) { 
    return this.expandableListDetail 
      .get(this.expandableListTitle.get(listPosition)) 
      .get(expandedListPosition); 
} 

@Override 
public long getChildId(int listPosition, int expandedListPosition) { 
    return expandedListPosition; 
} 

@Override 
public View getChildView(int listPosition, final int expandedListPosition, boolean isLastChild, 
         View convertView, ViewGroup parent) { 
    final String expandedListText = (String) getChild(listPosition, expandedListPosition); 

    if(convertView == null) { 
     LayoutInflater layoutInflater = (LayoutInflater) this.context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = layoutInflater.inflate(R.layout.qwedit_main_elv_item, null); 
    } 
    // ChildView views 
    badScoreView = convertView.findViewById(R.id.qwedit_main_badView); 
    mediocreScoreView = convertView.findViewById(R.id.qwedit_main_mediocreView); 
    goodScoreView = convertView.findViewById(R.id.qwedit_main_goodView); 
    worldclassScoreView = convertView.findViewById(R.id.qwedit_main_wcView); 
    badScoreTextView = (TextView) convertView.findViewById(R.id.qwedit_main_badTextView); 
    mediocreScoreTextView = (TextView) convertView.findViewById(R.id.qwedit_main_mediumTextView); 
    goodScoreTextView = (TextView) convertView.findViewById(R.id.qwedit_main_goodTextView); 
    worldClassScoreTextView = (TextView) convertView.findViewById(R.id.qwedit_main_worldclassTextView); 

    // TODO: TextView score subcategory setters 

    badScoreView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO: add logic to change score 
      subCategoryScore = 1; 
      badScoreView.setBackgroundColor(Color.parseColor("#eca9a7")); 
      mediocreScoreView.setBackgroundColor(Color.parseColor("#f0ad4e")); 
      goodScoreView.setBackgroundColor(Color.parseColor("#5cb85c")); 
      worldclassScoreView.setBackgroundColor(Color.parseColor("#0275d8")); 
     } 
    }); 

    mediocreScoreView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO: add logic to change score 
      subCategoryScore = 2; 
      badScoreView.setBackgroundColor(Color.parseColor("#d9534f")); 
      mediocreScoreView.setBackgroundColor(Color.parseColor("#f7d6a6")); 
      goodScoreView.setBackgroundColor(Color.parseColor("#5cb85c")); 
      worldclassScoreView.setBackgroundColor(Color.parseColor("#0275d8")); 
     } 
    }); 

    goodScoreView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO: add logic to change score 
      subCategoryScore = 3; 
      badScoreView.setBackgroundColor(Color.parseColor("#d9534f")); 
      mediocreScoreView.setBackgroundColor(Color.parseColor("#f0ad4e")); 
      goodScoreView.setBackgroundColor(Color.parseColor("#addbad")); 
      worldclassScoreView.setBackgroundColor(Color.parseColor("#0275d8")); 
     } 
    }); 

    worldclassScoreView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO: add logic to change score 
      subCategoryScore = 4; 
      badScoreView.setBackgroundColor(Color.parseColor("#d9534f")); 
      mediocreScoreView.setBackgroundColor(Color.parseColor("#f0ad4e")); 
      goodScoreView.setBackgroundColor(Color.parseColor("#5cb85c")); 
      worldclassScoreView.setBackgroundColor(Color.parseColor("#80baeb")); 
     } 
    }); 
    /** 
    * Use variables categoryScore and subCategoryScore to update scores 
    */ 
    return convertView; 
} 

@Override 
public int getChildrenCount(int listPosition) { 
    return this.expandableListDetail.get(this.expandableListTitle.get(listPosition)).size(); 
} 

@Override 
public Object getGroup(int listPosition) { 
    return this.expandableListTitle.get(listPosition); 
} 

@Override 
public int getGroupCount() { 
    return this.expandableListTitle.size(); 
} 

@Override 
public long getGroupId(int listPosition) { 
    return listPosition; 
} 

@Override 
public View getGroupView(int listPosition, boolean isExpanded, 
         View convertView, ViewGroup parent) { 
    String listTitle = (String) getGroup(listPosition); 
    if(convertView == null) { 
     LayoutInflater layoutInflater = (LayoutInflater) this.context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = layoutInflater.inflate(R.layout.qwedit_main_elv_group, null); 
    } 

    TextView listTitleTextView = (TextView) convertView 
      .findViewById(R.id.qwedit_main_elv_parent_title); 

    listTitleTextView.setText(listTitle); 

    return convertView; 
} 

@Override 
public boolean hasStableIds() { return false; } 

@Override 
public boolean isChildSelectable(int listPosition, int expandedListPosition) { return true; } 
} 

요령이나 요령이 우수 할 것입니다. 이것은 내 계층 구조 (또는 적어도 하위 계층)의 조회수 때문일 수 있다고 생각하지만, 안드로이드 개발에 비교적 익숙하지 않다.

감사합니다! EditText

을 포커스를 얻은 경우

답변

0

는 단순히 android:windowSoftInputMode="adjustNothing|stateHidden"을 추가하는 문제는 996px로 확장하지 않도록 액션 바의 원인이 해결했다
관련 문제