私は自分のアクティビティと2つのxmlデザインの中にカスタムビュー要素を持っています。 1つはランドスケープ、もう1つは水平モードですが、アプリの向きが変わるとアクティビティがランドスケープxmlに変わりますが、カスタムビューでは水平のデザインが維持されます。 誰かが私を助けることができますか?私は構成の変更や他の何かのレイアウトを変更する独自の方法を実装する必要がありますか。アンドロイド:オリエンテーション変更のカスタムビューで、ビューが変更されない
public class NavigationDashBoard extends LinearLayout implements
ITurnByTurnContract.DashboardView,
TextToSpeechUtils.ITextToSpeechDelegate,
IRouteContract.ViewNavigationPresenter,
SVGPresenter.svgLoadDelegate{
public NavigationDashBoard(Context context) {
super(context);
init(context,null);
}
public NavigationDashBoard(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(context, attributeSet);
}
public NavigationDashBoard(Context context, AttributeSet attributeSet, @AttrRes int defStyleAttr){
super(context,attributeSet,defStyleAttr);
init(context,attributeSet);
}
private void init(Context context, AttributeSet attributeSet){
TypedArray a = context.obtainStyledAttributes(attributeSet, R.styleable.NavigationDashboardStyle);
mVoiceEnabled = a.getBoolean(R.styleable.NavigationDashboardStyle_navigation_voice,DEFAULT_VOICE);
mSpeedEnabled = a.getBoolean(R.styleable.NavigationDashboardStyle_navigation_show_speed, DEFAULT_SPEED);
a.recycle();
onCreate();
}
private void onCreate(){
View v = LayoutInflater.from(getContext()).inflate(R.layout.route_navigation_dashboard_tool, this, true);
mSmallFrame = (LinearLayout) v.findViewById(R.id.small_route_icon_frame);
mSmallPoiIcon = (AppCompatImageView) v.findViewById(R.id.route_navigation_dashboard_route_poi_small);
mSmallDirectionJunction = (TextView) v.findViewById(R.id.route_navigation_dashboard_route_junction_small);
mSmallDirectionsIcon = (AppCompatImageView) v.findViewById(R.id.route_navigation_dashboard_route_direction_small);
mdirections = (TextView) v.findViewById(R.id.route_navigation_dashboard_route_message);
mdirections.setOnClickListener(new SpeakRepeatListener());
mDirectionsIcon = (AppCompatImageView) v.findViewById(R.id.route_navigation_dashboard_route_direction);
mDirectionJunction = (TextView) v.findViewById(R.id.route_navigation_dashboard_route_junction);
mPoiIcon = (AppCompatImageView) v.findViewById(R.id.route_navigation_dashboard_route_poi);
mAudio = (ImageView) v.findViewById(R.id.route_navigation_dashboard_volume);
mAudio.setOnClickListener(new OnMute());
mSvg = new SVGPresenter();
}
このようにしないと、アクティビティによってビューが作成され、次にそれらが削除されて再び作成され、無駄であり、正しい方法で実行され、アプリはよりスムーズかつ良好に動作します。あなた:) –
こんにちは、通常、あなたはアプリがビューを2回構築するということについては正解でしょう。しかし、私はコアの問題を発見しました。オリエンテーションの変更は、このアクティビティのマニフェストファイルでブロックされます。したがって、このアクティビティの変更は手動で行う必要があります。 –