我将如何让我的晶圆厂ConstraintLayout像我一样跨越两个布局CoordinatorLayout?
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#eeeeee"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/myToolbar"
android:layout_width="384dp"
android:layout_height="56dp"
android:background="@color/colorPrimary"
android:elevation="0dp"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp"/>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin"
app:layout_anchor="@+id/tvTest"
app:layout_anchorGravity="end|bottom|right"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp"/>
<CustomViews.FontText
android:id="@+id/tvTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="50dp"
android:text="TestText"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/myToolbar"/>
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现这种效果,但无法在圆圈内制作白色圆形笔画。在我的实现中,白色笔画出现在圆圈之外
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="10dip" />
<stroke
android:width="5dip"
android:color="#ffffff" />
<solid android:color="#f50000" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
预期输出:-
我正在AndroidX为我的 Android 项目使用依赖项。
我有一个Toolbar在我的活动中(这个活动是为了通过支付一些钱来支持开发人员)包裹在这样的线性布局中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/gradient"
tools:context=".Support">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_support"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@null"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
使用的其他 XML 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/gradient"
tools:context=".Support">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_support"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@null"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<TextView
android:layout_marginTop="150dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/google_sans"
android:textSize="17dp"
android:textColor="#ffffff"
android:text="@string/support_para"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="#ffffff"
android:textSize="20dp"
android:text="$"/>
<EditText
android:id="@+id/amount"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/pay_amount"
android:textColorHint="#ffffff"
android:textSize="20dp"
android:layout_marginStart="10dp"
android:layout_gravity="end"
android:maxLines="1" …Run Code Online (Sandbox Code Playgroud) 我有 2 个相邻的TextViews,每个都有一个不同的字符串,具有不同的字体大小。我希望文本在每个TextView. 我怎样才能做到这一点?
这是我的布局:
<LinearLayout
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:background="@color/colorAccentLight"
android:textSize="18sp"
style="@style/Base.TextAppearance.AppCompat.Medium"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="bottom"
android:textAlignment="gravity"
android:text="30"
/>
<TextView
android:background="@color/colorAccent"
android:text="hello"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="bottom"
android:textAlignment="gravity"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是当前的行为,请注意 2 TextViews如何具有不同的基线(“hello”低于 30),因为每个的字体TextView大小不同。
我的应用程序中有一个首选项屏幕,它偏离了中心,标题文本或数据不是从下图所示的左侧开始。我正在初始化设置片段。我没有应用任何视觉变化或添加任何特殊属性。
父活动中没有填充或边距。我还有一个回收器视图,它在应用程序中显示得非常好,但它偏离了中心
这是我的首选项.xml 文件
<androidx.preference.PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
app:title="General">
<Preference
app:key="feedback"
app:title="Send Feedback"
app:summary="Report technical issues or suggest new features"/>
<Preference
app:key="about"
app:title="About Us"/>
</PreferenceCategory>
<PreferenceCategory
app:title="Customize">
<SwitchPreferenceCompat
app:key="@string/key_darkTheme"
app:title="Enable Dark Theme"
app:summary="Enable dark theme throughout app (Restarts App Automatically)"
app:defaultValue="false"/>
<ListPreference
app:key="@string/key_font"
app:title="Set Font Size"
app:entries="@array/settings_list_preference_font"
app:entryValues="@array/settings_list_preference_values"
app:defaultValue="2"
app:summary="Set font size according to your liking"/>
</PreferenceCategory>
</androidx.preference.PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
android android-layout android-xml android-support-library androidx
最近我遇到了tools:context在我的布局文件中使用活动的用例。我了解到我可以使用它来将 Activity 类文件关联到我的布局文件。
但是我如何使用它来将 Fragment 类文件与任何布局相关联呢?
Bacuase 正如我所尝试的那样,它仅在自动完成建议中显示活动列表。
我试图LinearLayout在 Android 的 XML 布局中设置 a 的填充。但它给了我 2 个选择 -paddingLeft和paddingStart.
有什么区别,使用更正确/更好的属性之一是什么?
我想要最好的答案,因为这需要最优质的代码。
android android-layout right-to-left android-xml android-view
我有一个约束布局,其中一个文本视图位于左侧,另一个文本视图位于右侧。我希望正确的文本视图与末尾对齐。右侧文本视图也应该能够占用左侧的可用空间。如果空间不够,它应该在末端呈椭圆形。
我已经尝试使用以下 xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="@dimen/dimen_16dp">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Title"
android:textStyle="bold"
android:layout_marginEnd="@dimen/dimen_24dp"/>
<TextView
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:ellipsize="end"
android:maxLines="1"
android:text="Subtitle"/>
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
这对于右侧文本视图中的小文本非常有效。但是,如果右侧文本视图中的文本很大,它会与左侧文本视图重叠。我尝试添加app:layout_constraintStart_toEndOf="@id/title"到正确的文本视图,但这会导致两个问题:
如何在不将父布局更改为线性布局的情况下实现这一点?
我正在使用 ConstraintLayout Flow 想要创建如下所示的布局
但无法使用 ConstraintLayout Flow 实现上述目标,我的布局如下所示
下面是我的代码
<androidx.constraintlayout.helper.widget.Flow
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imgAiport"
app:constraint_referenced_ids="tvDateLbl,tvTimeLbl,tvAirlineLbl,tvDate,tvTime,imgAirlineLogo"
app:flow_wrapMode="aligned"
android:layout_margin="15dp"
app:flow_maxElementsWrap="3"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
如何使用 ConstraintLayout Flow 正确对齐元素
android android-layout android-xml android-constraintlayout androidx
布局预览最近停止工作,我无法修复它。当问题出现时我最近改变的事情是:
有谁知道为什么会发生这种情况和/或如何解决这个问题?谢谢。
这是堆栈跟踪:
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at android.view.BridgeInflater.lambda$createViewFromCustomInflater$0(BridgeInflater.java:259)
at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:285)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:122)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:928)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:948)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1002)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:309)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1121)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1095)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1124)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1095)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:369)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:710)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$6(RenderTask.java:865)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:174)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out …Run Code Online (Sandbox Code Playgroud)