我正在和我一起工作FloatingActionButton.用户应该能够在onClick事件中切换FAB背景颜色.
但是,建议的调用setBackgroundTintList似乎只能兼容21+ API.
我如何 - 正确 - 在棒棒糖前设备上进行操作?我可以使用任何替代方案吗?
提前致谢.
我试图获得这种效果,如果用户滚动RecyclerView某个布局与回收器一起向上滚动并消失在后面Toolbar.
使用可以获得类似的行为CoordinatorLayout,这可以通过设置来实现
app:layout_behavior="@string/appbar_scrolling_view_behavior"
Run Code Online (Sandbox Code Playgroud)
在上述Recycler,并做
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
此外,如果我将第二个孩子放入其中AppBarLayout并设置app:layout_scrollFlags为它,则获得的效果是相同的,两个布局都与Recycler一起滚动.
我想要实现的是保持第一个孩子(工具栏)固定在位,让第二个孩子(a LinearLayout)滚动并隐藏在工具栏后面.不幸的是我无法达到这种行为.
没有使用第三部分库可以吗?提前致谢,对不起我的英语.
android custom-scrolling android-coordinatorlayout android-appbarlayout
在使用新的Android支持设计库时,在我的应用程序中尝试设置透明状态栏时,我遇到了一些问题.
具体来说,我正在使用CoordinatorLayout+ AppBarLayout+ CollapsingToolbarLayout+ Toolbar这种分层次序的组合.
我注意到状态栏首先是透明的然后我可以看到从透明到全黑的转换.
我在值/样式中这样做:
<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)
这在我的布局中:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:elevation="4dp"
android:background="?android:colorPrimary"
android:layout_width="match_parent"
android:layout_height="128dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:expandedTitleMarginStart="64dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
app:cardCornerRadius="4dp"
app:cardElevation="6dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Latest Stories"/>
<TextView
android:id="@+id/latest_story_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Title Example"/>
<TextView
android:id="@+id/latest_story_preview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Content …Run Code Online (Sandbox Code Playgroud) 我正在处理与ViewPager,AppBarLayout和相关的奇怪事情Toolbar。
在我的布局中,我有一个标准的 Material Design 设置,例如:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="...">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/grey_900"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"
app:tabBackground="@color/grey_900"
app:tabIndicatorColor="@color/white_1000"
app:tabIndicatorHeight="4dp" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton
...
app:layout_behavior="com.inkstinctapp.inkstinct.FabBehavior" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我的 ViewPager 包含 4 个具有此布局的片段:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:layout_width="56dp"
android:layout_height="56dp"
android:indeterminate="true"
android:tint="@color/white_1000"
android:layout_centerInParent="true" />
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我无法让工具栏滚动,我尝试了以下所有组合:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:layout_scrollFlags="scroll|enterAlways"
Run Code Online (Sandbox Code Playgroud)
它们似乎都不起作用,除非我 …
android android-layout android-fragments android-viewpager android-toolbar
我正在开发一个用于 JavaFX 培训的小软件。
在 Android 中,在 a 中LinearLayout,我可以通过设置变量来扩展视图以填充整个可用空间android:weight="someValue",不幸的是我无法实现这是 JavaFX。
我尝试使用最大/最小/首选高度,但没有用。
任何帮助将非常感激。
由于通过陈述这个Android开发者博客文章中,我们现在可以使用VectorDrawables在Android API 7+使用AppCompat 23.2.0及更高版本.
除了使用drawables作为TextView的复合物之外,一切似乎都适合我.
通常,人们可以这样做:
customTab.setCompoundDrawablesWithIntrinsicBounds(
0,
R.drawable.my_vector,
0,
0
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,目前还没有工作,我无法找到解决此问题的方法.
正如帖子所述,唯一可用和有效的方法是xml,使用app:srcCompat="@drawable/..."和JavasetImageResource(...)
如何在setCompoundDrawable()方法中使用新的矢量drawable支持?
提前致谢.
编辑:
根据要求,这是VectorDrawableCompat课程的结果:
xml是:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="98"
android:viewportHeight="102">
<path
android:fillColor="#4D4D4D"
android:strokeWidth="2"
android:strokeColor="#4D4D4D"
android:pathData="M63.3336386,72.2631001 C56.7778507,76.9021242
48.7563953,79.6307404
40.09319,79.6307404 C17.9503315,79.6307404 0,61.804793 0,39.8153702
C0,17.8259473 17.9503315,0 40.09319,0 C62.2360484,0 80.1863799,17.8259473
80.1863799,39.8153702 C80.1863799,50.8100816 75.6987973,60.7639242
68.4433567,67.9690887 L96.7320074,96.0617174 C98.0293966,97.3501165
97.9978616,99.4159703 96.6953405,100.709466 C95.3837385,102.011979
93.2974318,102.019264 92.0151615,100.745879 L63.3336386,72.2631001
L63.3336386,72.2631001 L63.3336386,72.2631001 Z M40.09319,74.9465792
C59.6310061,74.9465792 75.4695341,59.217802 75.4695341,39.8153702
C75.4695341,20.4129383 59.6310061,4.6841612 40.09319,4.6841612
C20.5553738,4.6841612 …Run Code Online (Sandbox Code Playgroud) 有很多类似的问题,但没有一个解决了我的问题.
我在我的应用程序中嵌套了ViewPagers和嵌套FragmentStatePagerAdapters.
详细信息,创建第一个ViewPager(由4个片段适配器支持),其第一个片段包含其他3个片段.
我的问题是,基于某些事件,中间的片段根本没有显示.
一旦应用程序启动,一切都按预期工作并正确显示.
如果我在父ViewPager上切换页面,基于页面的行为是不同的:如果我从第一个(包含嵌套的ViewPager)到第二个然后回到第一个,那么一切都按预期工作; 如果我转到任何其他页面然后回到第一页,则ViewPager首先完全透明但仍可刷卡.为了在屏幕上重新绘制视图,我必须从第1页到第3页滑动几次,但无论如何,第2片段都没有显示.它完全是透明的.
我已经阅读了很多类似的问题,但找不到任何可行的修复方法.我此刻很困惑,我已经尝试了一切.
这是我的代码供参考:
家长活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.feed_coordinator);
mFloatingActionButton = (FloatingActionButton) findViewById(R.id.feed_floating_upload);
mViewPager = (ViewPager) findViewById(R.id.feed_view_pager);
mTabLayout = (TabLayout) findViewById(R.id.feed_tab_layout);
setupViewPager(); // this sets adapter to viewpager
mTabLayout.setupWithViewPager(mViewPager);
setupTabLayout();
}
private class ParentPagerAdapter extends FragmentStatePagerAdapter {
public ParentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new Frag1();
case 1:
return new Frag2();
case …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager fragmentstatepageradapter
花了一整天的时间,但无法让它工作.
我正在尝试创建一个app抽屉.我想获得当前安装的应用程序列表,然后将其放在GridLayout中.
当我尝试getPackageManager从扩展我的MainActivity的类调用时,我得到一个nullPointerException .
InstalledApp类:
public class InstalledApp extends MainActivity {
Context context = this;
public InstalledApp(Context c) {
this.context = c;
}
class PInfo {
public String appname = "";
public String pname = "";
public String versionName = "";
public int versionCode = 0;
public Drawable icon;
public void prettyPrint() {
System.out.println(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);
}
}
public ArrayList<PInfo> getPackages() {
ArrayList<PInfo> apps = getInstalledApps(false); /* false …Run Code Online (Sandbox Code Playgroud) 我知道这已经被问过很多次了,但我有一个不同的问题。
当我在 textview 中设置一个数字并将其设置textSize为某个大值(在我的情况下15pt)时,这几乎是发生的事情:

如您所见,编辑器在数字的顶部和底部显示了大量未使用的空间。我知道这有点与字体有关。
有没有什么办法解决这一问题?
为了澄清起见,我添加了一个代码,以便您可以测试自己:
<TextView
android:id="@+id/text_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textSize="15pt"
android:textColor="@color/accent_material_dark"
android:gravity="center"/>
Run Code Online (Sandbox Code Playgroud)
进一步澄清,红色矩形显示了我想删除的空间:

先感谢您。
编辑:
<RelativeLayout
android:layout_width="56dp"
android:layout_height="56dp"
android:gravity="center">
<Button
android:id="@+id/dial_number_two"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_centerInParent="true"
android:background="@drawable/ripple_number"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:orientation="vertical"
android:gravity="center"
android:clickable="false"
android:focusable="false"
android:elevation="10dp">
<TextView
android:id="@+id/text_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textSize="15pt"
android:textColor="@color/accent_material_dark"
android:background="#ff0000"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABC"
android:textSize="4pt"
android:visibility="gone"
android:textColor="@color/background_material_light"
android:gravity="center"/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)