简体   繁体   中英

Custom layout not showing android app

I have created custom layout but it not working, when I use include layout instead of set com.samsung.android.app.spage.CustomView.WeatherStateView it is working ok, I found some answers, use tag but it not working too, please help me:

weather_state_layout.xml

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

<TextView
    android:id="@+id/current_location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="current location" />

<include layout="@layout/detail_info_frag_hourly_content" /></LinearLayout>

WeatherStateView.java

public class WeatherStateView extends LinearLayout implements View.OnClickListener{
    private static final String TAG = "WeatherStateView";
    private TextView mCurrentLocation;
    private Context mContext;

    public WeatherStateView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public WeatherStateView(Context context) {
        super(context);
    }

    public WeatherStateView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initialize(context);
    }

    private void initialize(Context context) {
        mContext = context;
        LayoutInflater.from(context).inflate(R.layout.weather_state_layout, this);

        mCurrentLocation = (TextView) findViewById(R.id.current_location);
    }


    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int w = MeasureSpec.getSize(widthMeasureSpec);
        int h = MeasureSpec.getSize(heightMeasureSpec);

        int size = Math.min(w, h);
        setMeasuredDimension(size, size);
    }  
}

in main_layout.xml

<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"
tools:context=".WeatherModule.WeatherViewStateFragment">

    <CustomView.WeatherStateView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/weather_state_main_layout"
        android:orientation="vertical"
    />

You can use something like that Simply give the cast to the view of included layout and then get it.

View test1View = findViewById(R.id.yourincludedlayoutid);
TextView t1 = (TextView) test1View.findViewById(R.id.emiscode);

Problem here is

 LayoutInflater.from(context).inflate(R.layout.weather_state_layout, this);

Should change to ;

ViewGroup viewGroup = (ViewGroup) inflate(mContext , R.layout.weather_state_layout, null); addView(viewGroup);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM