Chcę zmienić rozmiar czcionki CollapsingToolbarLayout
i jej krój pisma. Jak mogę to osiągnąć?Jak zmienić krój pisma i rozmiar CollapsingToolbarLayout?
Odpowiedz
Wygląda Mam rozwiązanie:
private void makeCollapsingToolbarLayoutLooksGood(CollapsingToolbarLayout collapsingToolbarLayout) {
try {
final Field field = collapsingToolbarLayout.getClass().getDeclaredField("mCollapsingTextHelper");
field.setAccessible(true);
final Object object = field.get(collapsingToolbarLayout);
final Field tpf = object.getClass().getDeclaredField("mTextPaint");
tpf.setAccessible(true);
((TextPaint) tpf.get(object)).setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Bold.ttf"));
((TextPaint) tpf.get(object)).setColor(getResources().getColor(R.color.ice));
} catch (Exception ignored) {
}
}
Odbicie ... Brzydki hack – Lester
Można zrobić somthing tak:
mCollapsingToolbarLayout.setTitle(getTitle());
mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);
Odpowiedni styl TextView mogą być: 28sp # 000 bold
<style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">24sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">normal</item>
</style>
patrz także here w celach informacyjnych.
To świetnie, dzięki! – Kibi
Zrobiłem to dla mnie, zmieniając kolor tekstu tytułu, ponieważ uważam, że '' Toolbar.setTitleTextColor() '' lub '' app: titleTextColor'' z '' Toolbar'' nie zmienia koloru tytułu paska narzędzi, gdy zawarte w '' CollapsingToolbarLayout'' – patrickjason91
Zasadniczo można ustawić TextAppearance
w swoim xml.
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarlyout_commonview_header"
android:layout_width="match_parent"
android:layout_height="@dimen/appbarlayout_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapse_commonview_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="72dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop" />
<android.support.v7.widget.Toolbar
android:id="@+id/tlbr_commonview_mainmenu"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Z powyższego kodu widziałeś tę część
app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"
Konkretnie ostatnią część
.Title
Jeśli pamiętasz, to jest udokumentowane w materiale designu w Sekcja Typhography. Możesz to zmienić w dostępnym wbudowanym stylu TextAppearance.
Drugim krokiem jest użycie Roboto Font
który zalecany Google. The TextAppearance
nie zawiera tych czcionek, więc musimy dodać je ręcznie, na szczęście istnieje Czcionka Robota Gradle Base, która jest oferowana przez Typer. Przed użyciem czcionki musimy dodać nową zależność w naszym build.gradle
.
dependencies {
compile 'com.elmargomez.typer:typerlib:1.0.0'
}
i ustawić czcionki w naszej CollapsingToolbar
Typeface font = Typer.set(yourContext).getFont(Font.ROBOTO_MEDIUM);
collapsingToolbar.setExpandedTitleTypeface(font);
# 1. dzięki za wpis – gianguyen
można wykorzystywać nowe metody publiczne, na CollapsingToolbarLayout
ustawić czcionki dla zawalił i rozszerzonym tytułem, tak:
final Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/FrutigerLTStd-Light.otf");
collapsingToolbar.setCollapsedTitleTypeface(tf);
collapsingToolbar.setExpandedTitleTypeface(tf);
Wydaje się, że zostało to dodane w bibliotece wsparcia projektowania 23.1.0 i jest bardzo miłym dodatkiem.
To jest świetne, dzięki! –
Jak zmienić tytuł? Chcę programowo ustawić tytuł na inny tekst. – Equivocal
Prawdopodobnie możesz użyć metody 'setTitle (String)' w instancji 'CollapsingToolbarLayout'. – Thorinside
mCollapsingToolbar.setTitle(getTitle());
mCollapsingToolbar.setExpandedTitleTextAppearance(R.style.ExpandedAppBar);
mCollapsingToolbar.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar);
<style name="ExpandedAppBar" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">28sp</item>
<item name="android:textColor">#000</item>
<item name="android:textStyle">bold</item>
</style>
<style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">24sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">normal</item>
</style>
<style name="ExpandedAppBarPlus1" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">28.5sp</item>
<item name="android:textColor">#000</item>
<item name="android:textStyle">bold</item>
</style>
<style name="CollapsedAppBarPlus1" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">24.5sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">normal</item>
</style>
referencyjny tutaj CollapsingToolbarLayout setTitle not work correctly
zmienić rozmiar czcionki lub rodzicem.
<style name="expandedappbar" parent="@android:style/TextAppearance.Medium"> //Change Medium to Small
<item name="android:textSize">28sp</item> <!--Or Change the font size -->
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">bold</item>
</style>
<style name="collapsedappbar" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>
</style>
Code jest tutaj
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbarLayout"
android:layout_width="match_parent"
app:expandedTitleTextAppearance="@style/Toolbar.TitleText"
app:collapsedTitleTextAppearance="@style/Toolbar.TitleText"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="@dimen/expanded_toolbar_title_margin_start"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
Dodaj te linie kodu w CollapsingToolbarLayout układ
app:expandedTitleTextAppearance="@style/Toolbar.TitleText"
app:collapsedTitleTextAppearance="@style/Toolbar.TitleText"
a kod, który znajduje się poniżej, w style.xml
<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textSize">16sp</item>
</style>
próbował setCollapsedTitleTextAppearance(); i setCollapsedTitleTextColor(); funkcja? – abhishek
@abhishek, to nie jest to, czego szukam. Nie mogę zmienić kroju czcionki przez xml. – AlexMomotov