2016-08-05 3 views
0

XML 레이아웃에서 사용자 정의보기를 만들기 위해 LayoutInflater를 사용하려고합니다.LayoutInflater가 XML을 제대로 표시하지 않습니다.

MainActivity :

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     LinearLayout layout = (LinearLayout) findViewById(R.id.t1); 

     Widget w = new Widget(getApplicationContext()); 

     layout.addView(w.getView()); 
    } 

위젯 :

private Context context; 
    public Widget(Context context) { 
     this.context = context; 
    } 

    public View getView(){ 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.widget, null); 
     ((Button)view.findViewById(R.id.button)).setText("button"); 
     ((TextView)view.findViewById(R.id.textView)).setText("text"); 

     return view; 
    } 

widget.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/textView" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

그러나 나는이 문제를 가지고 :

  1. 활동은 TextView없이 버튼 만 표시합니다.

  2. 단추에는 검정색과 흰색 텍스트가 있지만 미리보기에는 회색과 검정색 텍스트가 있습니다.

어떻게 이러한 문제를 해결할 수 있습니까?

답변

1

아마도 res/values ​​/ styles.xml 매개 변수를 변경해야 할 수도 있습니다. Android Studio 2.0에서는 테마 편집기를 사용할 수 있습니다. 특별한 버튼 등이 필요하지 않은 경우에 아주 좋습니다.

또는 각보기에 맞춤 색상을 추가 할 수 있습니다. 예를 들어

android:textColor="@color/yourcolor1" 
android:background="@color/yourcolor2" 

을 텍스트보기에 추가하십시오. 고해상도/값/colors.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="yourcolor1">#FFFFFF</color> 
<color name="yourcolor2">#CCCCCC</color> 
</resources> 

이 버튼이 (단지 예)처럼 너무 속성 변경 :

android:textColor="@android:color/black" 
android:background"@android:color/darker_gray" 
+0

감사, 문제는 색 때문. 그리고 레이아웃 (예 : 검정색 텍스트가있는 회색 버튼)을 열면 미리보기에서 볼 수있는 스타일의 기본 스타일을 어디에서 확인할 수 있습니까? –

+0

발견 된 해결책 : http://stackoverflow.com/a/2119625/2656632 –