RTL レイアウトと LTR レイアウトがあります。
最初はすべてうまく機能しますが、アラートモードに移行した後
どちらのレイアウトも左揃えです。
どうすればこれを修正できますか? または少なくとも状況をよりよく調べますか?
アクティビティのビューで現在のレイアウト プロパティと属性を確認できるツールはありますか? このコードは、元の XML から多くの属性を変更しており、特定の状況では追跡が困難です。
ここに私のxmlがあります:
<LinearLayout
android:id="@+id/navBarBox2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:padding="0dp"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/navBarDistanceLayout"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<MyTextView
android:id="@+id/navBarDistance"
style="@style/NavBarDistance"
android:textSize="19dp"
android:text="miles"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<MyTextView
android:id="@+id/navBarDistanceUnit"
style="@style/NavBarDistUnit"
android:textSize="19dp"
android:text="0.1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/navBarDistanceLayoutRtl"
android:layout_width="70dp"
android:layout_height="match_parent"
android:layout_marginRight="8dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical|right"
android:orientation="horizontal"
android:visibility="gone">
<MyTextViewType
android:id="@+id/navBarDistanceUnitRtl"
style="@style/NavBarDistUnit"
android:textSize="19dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
/>
<MyTextViewType
android:id="@+id/navBarDistanceRtl"
style="@style/NavBarDistance"
android:textSize="19dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
コードの一部は次のとおりです。
AlerterMode に変更してから非変更モードに戻るとnavBarDistanceLayoutRtl
、右ではなく左に配置されます。
if (bIsAlertMode)
{
...
if (rtlMode)
{
width = view.findViewById(R.id.navBarDistanceLayoutRtl).getWidth();
android.widget.LinearLayout.LayoutParams DistanceBar = new LinearLayout.LayoutParams(width, android.widget.LinearLayout.LayoutParams.MATCH_PARENT);
DistanceBar.setMargins(3, 20, 3, 0);
view.findViewById(R.id.navBarDistanceLayoutRtl).setLayoutParams(DistanceBar);
}
else
{
width = view.findViewById(R.id.navBarDistanceLayout).getWidth();
android.widget.LinearLayout.LayoutParams DistanceBar = new LinearLayout.LayoutParams(width, android.widget.LinearLayout.LayoutParams.MATCH_PARENT);
DistanceBar.setMargins(3, 20, 3, 0);
view.findViewById(R.id.navBarDistanceLayout).setLayoutParams(DistanceBar);
}
...
}
else
{
...
if (rtlMode)
{
width = view.findViewById(R.id.navBarDistanceLayoutRtl).getWidth();
android.widget.LinearLayout.LayoutParams DistanceBar = new LinearLayout.LayoutParams(width, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
DistanceBar.setMargins(20, 8, 3, 0);
DistanceBar.gravity = RelativeLayout.ALIGN_PARENT_RIGHT;
view.findViewById(R.id.navBarDistanceLayoutRtl).setLayoutParams(DistanceBar);
view.findViewById(R.id.navBarDistanceLayoutRtl).setVisibility(View.VISIBLE);
view.findViewById(R.id.navBarDistanceLayout).setVisibility(View.GONE);
distance = (TextView)view.findViewById(R.id.navBarDistanceRtl);
distanceUnit = (TextView)view.findViewById(R.id.navBarDistanceUnitRtl);
}
else
{
width = view.findViewById(R.id.navBarDistanceLayout).getWidth();
android.widget.LinearLayout.LayoutParams DistanceBar = new LinearLayout.LayoutParams(width, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
DistanceBar.setMargins(0, 8, 3, 0);
view.findViewById(R.id.navBarDistanceLayout).setLayoutParams(DistanceBar);
DistanceBar.gravity = RelativeLayout.ALIGN_PARENT_LEFT;
view.findViewById(R.id.navBarDistanceLayoutRtl).setVisibility(View.GONE);
view.findViewById(R.id.navBarDistanceLayout).setVisibility(View.VISIBLE);
distance = (TextView)view.findViewById(R.id.navBarDistance);
distanceUnit = (TextView)view.findViewById(R.id.navBarDistanceUnit);
}
...
}
}