与此相关的问题与对话活动以及如何制作这些全屏有关,但我的问题略有不同.我希望这些对话框包装活动内容.
现在,"对话活动"都继承了以下主题,
<style name="tabDialog" parent="@android:Theme.Dialog">
<item name="android:windowBackground">@drawable/panel_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)
清单中的活动定义示例,
<activity android:name=".TabSettingsActivity"
android:theme="@style/tabDialog" android:excludeFromRecents="true"
android:configChanges="keyboardHidden" />
Run Code Online (Sandbox Code Playgroud)
内容视图父视图定义如下,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@layout/dialog_rounded_background"
android:orientation="vertical">
Run Code Online (Sandbox Code Playgroud)
并且布局中的所有子视图还为两个维指定了wrap_content.我也试过使用RelativeLayout作为父亲,但同样如此.
在活动的onCreate中设置了内容视图后,我这样做了
getWindow().setLayout(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
Run Code Online (Sandbox Code Playgroud)
这些东西实际上似乎都没有任何区别.问题主要与对话框高度有关,大约比必要大50%.对话框的一半只是死空间.将根视图维度设置为硬编码的dp单位可以解决问题,但这似乎是一种解决方法而不是解决方案.
任何人的想法?
提前致谢.
干杯
G 天。
我有一个 Android Gradle 项目,它由 Android 模块和 3 个 Java 库模块(Android 模块所依赖)组成。
Android Gradle 插件支持构建类型(调试、发布等),我也希望能够将这些构建类型用于库项目,这样如果我启用调试,它将使用所有 4 个的调试源集模块。
但是,我不太确定如何为纯 Java 模块实现这一点。我知道我可以定义新的 sourceSets,但是无论如何配置 Gradle 构建脚本,以便在我更改 Android 模块的构建类型时 Java 模块的 sourceSets 更改?
提前致谢。
我有一个棘手的问题,涉及两个不同视图的同步滚动.我已经创建了自己的自定义网格视图窗口小部件,左侧和顶部都有"粘性"视图,只有在网格的一个方向上.想想一个日历,你有时间在顶部,日期在左边,当你水平滚动时间时,日期视图应保持不变,当你垂直滚动日期时,时间视图应保持不变.
网格本身是使用垂直滚动视图中的嵌套水平滚动视图实现的.电网运行良好,所以没问题.由于粘性视图不在实际网格中,因此我在网格滚动视图中覆盖了onScrollChanged,并在用户滚动网格时以编程方式调用粘贴视图上的scrollTo.
这可以按预期工作,除了两个不同的视图开始滚动和结束滚动时有一个小的时间偏移.当您考虑滚动可能是在UI线程上线性执行时,我认为这是有道理的.
所有的视图都是滚动视图,我已经启用了平滑滚动和使用smoothScrollTo等,而不是尝试改进这一点,但它仍然是同样的问题.这个问题在较大的屏幕上尤为明显,例如三星Galaxy Tab,而在中小屏幕设备上则难以察觉.
任何帮助表示赞赏!如果有一个简单的解决方案,很好..如果它意味着新设计(满足上面的粘性视图用例),那么就这样吧.
用于触发编程的代码.滚动,水平相同
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
mListener.onScrollY(y);
super.onScrollChanged(x, y, oldx, oldy);
}
// which leads to,
// Handle vertical scroll
public void onScrollY(final int y) {
mCurrentY = y;
mVerticalScroll.smoothScrollTo(0, y);
}
Run Code Online (Sandbox Code Playgroud)
下面是XML布局,如果有任何帮助的话
实际网格,它是一个包含在垂直滚动视图中的水平滚动视图,网格项在嵌套的linearlayout中垂直添加
>
< com.....VerticalScrollView
android:id="@+id/gridscroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/timescroll"
android:layout_toRightOf="@id/vertscroll"
android:layout_alignTop="@id/vertscroll"
android:layout_marginLeft="2dp" android:scrollbars="none"
android:fadingEdge="none">
< com....HorizScrollView
android:id="@+id/horizscroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:fadingEdge="none">
< LinearLayout android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
< /LinearLayout>
< /com.....HorizScrollView>
< /com.....VerticalScrollView>
Run Code Online (Sandbox Code Playgroud)
水平粘滞视图
< …
Run Code Online (Sandbox Code Playgroud)